C++ constexpr

    [C++] C언어와 다른 C++ 함수(2)

    [C++] C언어와 다른 C++ 함수(2)

    1. 함수 삭제(delete function) - C++ 11부터 추가된 문법 - 아래 코드의 의미 : int를 인자로 받는 move 함수는 삭제하겠다. - 삭제된 함수를 호출하면 컴파일 시간에 오류가 발생한다. void move(int) = delete; // 함수 삭제 int main() { move(10); // 컴파일 에러 } 1.1 함수를 제공하지 않는 것 vs 함수를 삭제 하는 것 - 함수를 제공하지 않을 경우 => 함수 호출 시 인자의 암시적 형 변환을 통해서 호출 가능한 함수를 찾게 된다. => 데이터 손실이 있을 수 있어 손해 => 해결 방법은 double 타입의 함수를 만들어 대응 => 함수를 선언만 제공한다면 함수 호출 시 링크 에러(link error) 발생 - 함수를 삭제(dele..

    [C++] 변수(2)

    [C++] 변수(2)

    1. Constexpr - 컴파일 시간 상수를 만드는 새로운 키워드 => 컴파일 시간에 결정되는 상수 값으로만 초기화 할 수 있다. - C++ 11에서 도입된 문법 int main() { const int t1 = 10; // 상수로 만듬 t1 = 20; // error constexpr int t2 = 10; // 상수로 만듬 t2 = 20; // error } 1.1 C언어와 배열의 크기 - C89 (1989년에 표준화된 문법) => 컴파일 시간에 크기를 알 수 있어야 한다. - C99 (1999년에 표준화된 문법) => 배열의 크기로 변수도 가능 => g++은 지원하지만 cl컴파일러는 지원하지 않음 void move(const int n) { int arr[s]; // error - move(10)..