나는 다음과 같은 것을 시도하고 있습니다.
#include <iostream>
#include <random>
typedef int Integer;
#if sizeof(Integer) <= 4
typedef std::mt19937 Engine;
#else
typedef std::mt19937_64 Engine;
#endif
int main()
{
std::cout << sizeof(Integer) << std::endl;
return 0;
}
하지만이 오류가 발생합니다.
error: missing binary operator before token "("
조건부 typedef를 올바르게 만들려면 어떻게해야합니까?
sizeof, 또는 다른 C ++ 구조에 대해 아무것도 모릅니다 . 그것은 확실히 당신이 직접 만든 것들에 대해 알고하지 않습니다typedef즉 아직 분석되지 않았기 때문에.