Я намагаюся зробити щось подібне:
#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
, оскільки це ще навіть не проаналізовано.