C++ 11 또는 C++ 14에서는 constexpr 함수에 대한 유형 별칭을 정의하려고합니다.constexpr 함수에 유형 별칭을 정의 할 수 있습니까
#include <iostream>
constexpr int foo(int i, int j) { return i + j; }
using TConstExprFunction = constexpr int (*)(int i, int j);
int main() {
TConstExprFunction f = foo;
constexpr int i = f(1, 2);
std::cout << i << std::endl;
}
을하지만 g ++ 및 그 소리 ++로 컴파일에 실패 :
나는 시도했다.그램 ++ : error: expected type-specifier before 'constexpr'
그 소리 ++ : error: type name does not allow constexpr specifier to be specified
나는 그것이 '의 오류 메시지 ++ 그 소리에서
#include <iostream>
constexpr int foo(int i, int j) { return i + j; }
using TConstExprFunction = int (*)(int i, int j);
int main() {
constexpr TConstExprFunction f = foo;
constexpr int i = f(1, 2);
std::cout << i << std::endl;
}
를 컴파일하기 위해 다음과 같이해야 할, 내가가 constexpr
를 사용하지 않을 수 있습니다 보인다 이름을 입력하십시오.
따라서 constexpr 함수에 대한 유형 별칭을 정의 할 수 있습니까? 그렇다면 어떻게?
거기에'static'을 사용할 수없는 것처럼 ... –
"* 그래서 constexpr 함수에 타입 별칭을 정의 할 수 있습니까?"하나의 타입 별칭을 가질 수 있습니다. 하나의 함수를 통해 컴파일 타임 상수 표현식 인 것처럼 함수를 호출 할 수 없습니다. 그래서 당신이 원하는 효과는 불가능합니다. –
@MarcGlis 그것은 의미가 있습니다. – Mine