Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++11 완벽 정리: 현대 C++ 표준의 핵심 변화와 주요 기능

C++11이란 무엇인가?

C++11은 2011년에 발표된 현대 C++ 표준으로, 기존 언어에 수많은 중요한 확장 기능과 개선 사항을 도입한 버전입니다. 이 표준은 2011년 8월 12일 국제표준화기구(ISO)의 승인을 받았으며, 그 이전 표준이었던 C++03을 공식적으로 대체했습니다.

C++0x라는 이름의 유래

C++11은 발표 전까지 C++0x라는 이름으로도 널리 알려져 있었습니다. 원래 다음 개정 표준은 2008년경 완성될 것으로 예상되었지만, 일정이 불확실하여 'x'가 8 또는 9를 의미할 수 있는 C++0x라는 임시 명칭이 사용되었습니다. 이후 개발 계획이 조정되면서 최종적으로 2011년에 표준이 확정되었고, 그때부터 공식 명칭인 C++11로 불리게 되었습니다.

C++11의 주요 변경 및 추가 사항

C++11은 C++ 프로그래밍 방식을 크게 바꾼 다양한 기능들을 도입했습니다. 대표적인 변경 사항은 다음과 같습니다.

  • 초기화 리스트(Initializer lists)
  • 자동 타입 추론(Automatic type deduction)
  • Rvalue 참조(Rvalue references)와 이동 생성자(Move constructors)
  • constexpr – 일반화된 상수 표현식
  • POD(Plain Old Data) 정의의 수정
  • 균일 초기화(Uniform initialization)
  • 범위 기반 for 루프(Range-based for loop)
  • 람다(Lambda) 함수와 표현식
  • 대체 함수 문법(Alternative function syntax)
  • 명시적 override 및 final 지정자
  • 상수 널 포인터 nullptr
  • 강타입 열거형(Strongly typed enumerations)
  • 적절한 위치에서 오른쪽 꺾쇠 괄호(>>)를 연산자로 취급하지 않도록 개선
  • 가변 인자 템플릿(Variadic templates)
  • 멀티스레딩 메모리 모델
  • STL에 해시 테이블(hash table) 추가
  • 표준 라이브러리에 정규 표현식(Regular expressions) 추가
  • shared_ptr, weak_ptr 등 범용 스마트 포인터(Smart pointers) 추가

왜 C++11이 중요한가?

C++11은 단순한 기능 추가를 넘어 C++을 '현대적인 언어'로 탈바꿈시킨 전환점으로 평가받습니다. 람다 표현식과 자동 타입 추론 덕분에 코드가 간결해졌고, 스마트 포인터 도입으로 메모리 관리가 훨씬 안전해졌으며, 멀티스레딩 지원으로 병렬 프로그래밍이 표준 차원에서 가능해졌습니다.

그 외에도 더 많은 기능들이 포함되어 있습니다. 전체 목록과 예제 코드는 Wikipedia의 C++11 문서에서 확인할 수 있습니다.