본문 바로가기

C++16

C++14 : 변수 템플릿(Variable templates) 이전 버전의 C++에서는 함수, 클래스 또는 타입 별칭만 템플릿화 할 수 있었다. C++14에서는 템플릿화된 변수를 생성할 수 있다. 아래 예제는 다양한 타입에 대한 pi값을 얻기 위해 읽을 수 있는 변수 pi이다 (예: 정수 유형으로 읽을 때 3, float, double, long double, etc로 읽을 때 가장 가까운 값을 얻을 수 있음) 템플릿의 일반적인 규칙은 전문화(specialization)를 포함하여 이러한 선언 및 정의에 적용된다. template constexpr T pi = T(3.141592653589793238462643383); // Usual specialization rules apply: template constexpr const char* pi = "pi"; 변수 .. 2022. 4. 15.
C++14 : 완화된 constexpr 제약 (Relaxed constexpr restrictions) 완화된 constexpr 제약 (Relaxed constexpr restrictions) 먼저 constexpr은 C++11에 추가된 기능이다. 주요 아이디어는 런타임이 아닌 컴파일 시간에 계산을 수행하여 프로그램의 성능을 향상시키는 것이다. 개발자가 프로그램을 컴파일하고 완료하면 사용자가 여러 번 실행한다는 점에 주목하자. 아이디어는 컴파일 시간을 보내고 런타임에 시간을 절약하는 것이다. (템플릿 메타프로그래밍과 유사) constexpr은 객체 또는 함수의 값이 컴파일 타임에 평가될 수 있고 표현식이 다른 상수 표현식에서 사용될 수 있음을 지정한다. 예를 들어 아래 코드에서 product()는 컴파일 시간에 평가된다. // constexpr function for product of two number.. 2022. 4. 15.
C++14 : 함수 반환 타입 추론(Function return type deduction), 선언 시 대체 형 추론(Alternate type deduction on declaration) 함수 반환 타입 추론(Function return type deduction) c++14에서 함수의 반환 값으로 auto를 사용하면 컴파일러는 자동으로 반환 형을 추론하려고 시도한다. // C++14 program to illustrate the // return type deduction #include using namespace std; // Function to multiply the two // numbers a and b auto multiply(int a, int b) { // Return the product return a * b; } // Driver Code int main() { int a = 4, b = 5; // Function Call cout 2022. 4. 15.
Google C++ Style Guide 번역 정리 차례 C++ Version - C++ Version C++ Version - C++ Version 헤더 파일 - Header Files 자체 포함 헤더 - Self-contained Headers #define가드 - The #define Guard 사용하는 내용 포함 - Include What You Use 전방 선언 - Forward Declarations 인라인 함수 - Inline Functions include의 이름과 순서 - Names and Order of Includes 범위 - Scoping 네임스페이스 - Namespaces 내부 연계 - Internal Linkage 비 멤버 함수, 정적 멤버 함수, 전역 함수 - Nonmember, Static Member, and Global F.. 2022. 4. 14.
300x250