constexpr int factorial(int n){ // 지역 변수 int result = 0; // 여러 개의 반환문 if (n <= 1) result = 1; else result = n * factorial(n - 1); return result;}
익명(14.56)2020-11-05 16:01
답글
이건 상수아닌데 반환되는데
익명(14.56)2020-11-05 16:01
답글
내가 처음에 상수라고 한건 좀 잘못 말한거고 요는 컴파일 타임에 evaluation이 되는 expression만 저기다 넣을수 있는거임 근데 constexpr 함수는 argument에 따라 컴파일타임 eval 이 될수도 안될수도 있음 내가 말한건 constexpr int x = 10 이런거
익명(121.133)2020-11-05 16:04
답글
그럼 내가쓴 함수는 factorial 호출부분에따라 컴파일타임에 실행될수도안될수도있다는거 ? 예를들어 걍 int a = 3 ; factorial (a) 는 컴파일타임에 되고 막 존나계산한거는 안되는거 ?
익명(14.56)2020-11-05 16:07
답글
factorial(3) 은 되고 int a = 3; factorial( a ) 는 안된다는 얘기임
상수를 넘겨주면 됨
상수는 객체가아님?
constexpr 이나 리터럴
constexpr int factorial(int n){ // 지역 변수 int result = 0; // 여러 개의 반환문 if (n <= 1) result = 1; else result = n * factorial(n - 1); return result;}
이건 상수아닌데 반환되는데
내가 처음에 상수라고 한건 좀 잘못 말한거고 요는 컴파일 타임에 evaluation이 되는 expression만 저기다 넣을수 있는거임 근데 constexpr 함수는 argument에 따라 컴파일타임 eval 이 될수도 안될수도 있음 내가 말한건 constexpr int x = 10 이런거
그럼 내가쓴 함수는 factorial 호출부분에따라 컴파일타임에 실행될수도안될수도있다는거 ? 예를들어 걍 int a = 3 ; factorial (a) 는 컴파일타임에 되고 막 존나계산한거는 안되는거 ?
factorial(3) 은 되고 int a = 3; factorial( a ) 는 안된다는 얘기임
constexpr int a = 3; factorial( a ) 는 되고
아 이해햇노
님 ㄱㅅ
https://en.cppreference.com/w/cpp/language/template_parameters
미친 왜안들어가지지
지금 KT랑 LG cppreference 막혔다니까 ㅋㅋ vpn 쓰고 들어가라