c++11 언제부터 본격적으로 쓰게 될까요?

oosap의 이미지

스택오버플로같은데서 물어보면 지금 당장 쓰고 있는데 무슨 소리냐는 듯한 답변들이 있더군요.
하지만 제 주위에는 C++11 을 쓰는 사람은 없고 국내에 새 버전에 맞춰나오는 문법서적도 전무합니다. 인터넷으로 뒤져가며 보면 C++11 은 편리한 기능들도 많지만 함수형언어적인 성격이 있는 것들 std::bind 같은 것들을 보면 겁부터 납니다. c++ 몬스터 같다는 느낌입니다. 뭔가 수렴하는게 아니라 공부하면 할 수록 발산하는 수열처럼 물음이 점점 늘어만 갑니다.
그래서 당분간은 c++11은 관심을 접어둘까 합니다. 오픈소스중에 c++11 으로 된 것도 본 적도 없구요..
c++11 얼마나 쓰시나요?

klyx의 이미지

전 잘쓰고 있습니다. 개인 프로젝트(오픈소스)라 제가 쓰고 싶은데로 씁니다. 상업용은 아무래도 VC++의 C++11 지원이 제대로 되기전엔 안퍼지겠죠.
그리고 언급하신 std::bind는 솔직히 boost::bind로 너무 오래전부터 구현되어있었고, 쓰고 싶은 사람들은 이미 다 쓰고 있었기 때문에 딱히 functional 해더의 것들이 새로운 것을 쓰고 있다는 느낌은 없네요. lambda나 auto 같은 라이브러리 차원이 아닌 언어 차원에서의 기능들이 얼마나 널리 퍼지느냐가 더 중요할 것같습니다.

litnsio2의 이미지


auto 나 for ( auto : container).. 등의 구문을 아주 편하게 잘 쓰고 있습니다.

사실 그 이외에 새로 도입된 것들을 사용할 만한 것을 만드는게 아니라 쓰고 있다고 말하기엔 좀 민망하지만,,

하나하나 새로운 것들을 적용해보고, 익숙해지다보면 점점 퍼지겠죠.

회사에서는 아무래도 개발환경 문제로 인해 (vs2005, gcc 4.3, ... ) 쓸 수 있는 기회가 없네요.

태훈의 이미지

컴파일러에서 최근에야 지원하기 시작했으니, 아직 몇년은 걸릴것 같습니다.
제 생각에는 3년 정도는 지나야 널리 쓰이기 시작 할 것 같습니다.

Just do it!

oosap의 이미지

조금 넉두리같은 제 물음에 답변해주셔서 고맙습니다.
저는 C++/C 만 조금 할 줄 앏니다만, C++ 이란게 뭐가 이렇게 어려운가 싶습니다.
시중에 파는 만원짜리 문법책에 있는 내용이 전부인 줄 알았는데, 그런건 시작점에 불과하네요,
알면 알 수록 새로 알아야 하는 게 자꾸 발견되고 끝이 없습니다.

C++11 같은 경우는 pthread 가 포함된 것이 정말 반갑더군요.
무브 시맨틱과 우측값 참조같은 개념도 참 좋은 것 같습니다.
하지만 함수형 언어적인 것들은 도무지 감히 쳐다볼 엄두도 나지 않네요..
잘짜는 고수들처럼 프로그램할 수 있는 날이 오긴 할지.. 싶어 이런 넉두리 같은 질문을 올렸었나봅니다.

-------

C++ 의 트랜드를 따라가기에는 부스트가 좋은것 같네요... 부스트를 쓴다면 새 표준에 대한 걱정이 무척 많이 줄어들 거라 보여지는군요.. xylosper 님 말씀처럼요..
ACE 를 거의 1년정도 공부했는데 무척 후회가 됩니다.
지금 boost::bind 를 보고 있는데 그렇게 어려운게 아니었군요..

Thanks for being one of those who care for people and mankind.
I'd like to be one of those as well.

winner의 이미지

Qt 5 가 C++ 11 지원한 것은 많은 이유를 들 수 있지만 결국 중요한 것은 재미있기 때문이라고 합니다. ^_^

국내에서 가장 권위있는 C 언어 도서라고 할 수 있는 'C 언어 펀더멘탈' 의 서문에는
C 언어를 누구도 온전히 알고 있다고 말 할 수 있는 사람은 없다고 합니다.
C 언어를 만든 Dennis M. Ritchie 조차도 말이죠.
C 언어보다 몇배는 거대한 C++ 는 말할 것도 없죠.
실제로 'C 언어 펀더멘탈' 저자는 Bjarne Stroustrup 이 hybrid paradigm 으로 C++ 를 제대로 쓸 수 있는지 궁금하다는 글을 쓴 적도 있었죠. ^_^.
언어의 모든 세부사항을 몰라도 programming 잘 하는 사람들 많습니다. 공부하다보면 적정선을 찾게 될 거라고 봅니다.
아니면 아예 Boost 나 언어개발에 참가하셔도 좋고요.

ACE 공부가 지금은 후회가 되어도 언젠가는 공부했던게 좋았다고 생각하는 시기가 다시 올거라고 생각해봅니다.

DarkSide의 이미지

Qt 의 지원은 툴 차원의 지원이죠.
결국은 컴파일러가 뒷받침되어야 합니다.

oosap의 이미지

오랜만에 답글로 만나뵙게 되서 반갑습니다. ^^;
C++11 이 재밌는 건 사실입니다. 아직 잘 모르지만 재미있습니다. 덩달아서 부스트에도 관심이 급 상승했습니다. 그리고 ACE 공부한게 후회된다는 건 잠깐 그랬었던 것입니다. 공부해서 남주는 건 아니고 ACE 도 좋은 프레임워크이니까요..

Thanks for being one of those who care for people and mankind.
I'd like to be one of those as well.

lithium81의 이미지

궁금해서 여쭤봅니다.

C++11과 Boost에 큰 차이가 있나요?

Boost에서 일부 좋은(? 검증받은?) 라이브러리들이나 양식이 C++11에 반영된 게 아니고, C++11만의 고유한 내용이 따로 있습니까?

기존에 Boost 중 일부 라이브러리(thread, asio, bind, circular_buffer, 스마트 포인터 등..)를 잘 써왔던 저로써는 C++11도 그냥 그런가보다 하고 있었는데

새로 알아둘 요소가 있다면 한 번 체크해보려고요...

- 어제보다 나은 오늘, 오늘보다 나은 내일.

klyx의 이미지

http://en.wikipedia.org/wiki/C%2B%2B11 참고하세요.
목록만 뽑아도

3 Core language runtime performance enhancements
3.1 Rvalue references and move constructors
3.2 constexpr – Generalized constant expressions
3.3 Modification to the definition of plain old data
4 Core language build time performance enhancements
4.1 Extern template
5 Core language usability enhancements
5.1 Initializer lists
5.2 Uniform initialization
5.3 Type inference
5.4 Range-based for loop
5.5 Lambda functions and expressions
5.6 Alternative function syntax
5.7 Object construction improvement
5.8 Explicit overrides and final
5.9 Null pointer constant
5.10 Strongly typed enumerations
5.11 Right angle bracket
5.12 Explicit conversion operators
5.13 Alias templates
5.14 Unrestricted unions
6 Core language functionality improvements
6.1 Variadic templates
6.2 New string literals
6.3 User-defined literals
6.4 Multithreading memory model
6.5 Thread-local storage
6.6 Explicitly defaulted and deleted special member functions
6.7 Type long long int
6.8 Static assertions
6.9 Allow sizeof to work on members of classes without an explicit object
6.10 Control and query object alignment
6.11 Allow garbage collected implementations
6.12 Attributes

이만큼입니다.

익명 사용자의 이미지

lithium81의 이미지

질문자입니다.

알려주신 걸 보고 궁금해져서 조금 더 찾아보았습니다.

Boost의 어떤 라이브러리들은 C++11의 것들에 대응되어서 대체 가능하기도 할 것 같군요.


http://stackoverflow.com/questions/8851670/relevant-boost-features-vs-c11


물론 좀 더 찾아보니 완벽하게 대체는 아닌 것 같습니다만.

- 어제보다 나은 오늘, 오늘보다 나은 내일.

oosap의 이미지

괜찮은 내용이네요..
부스트가 굉장히 중요하다는 걸 이제야 알게 되다니... C++11 을 보면서 느끼게 되었습니다.

Thanks for being one of those who care for people and mankind.
I'd like to be one of those as well.

bushi의 이미지

oosap의 이미지

GCC 와 Clang 은 C++11 이 구현이 거의 되었다는 것이로군요.
좋은 컴파일러를 만들어서 공개하는 분들에게 고마움이 생깁니다. 표준이 나오고 2년 내로 컴파일러가 만들어진거네요.. 음..

Thanks for being one of those who care for people and mankind.
I'd like to be one of those as well.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.