Tôi đang cố gắng làm điều gì đó như sau:
#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;
}
nhưng tôi gặp lỗi này:
error: missing binary operator before token "("
Làm thế nào tôi có thể tạo chính xác typedef có điều kiện?
sizeof
hoặc các cấu trúc C ++ khác. Nó chắc chắn không biết về những thứ do chính bạn tạo ratypedef
, vì nó thậm chí còn chưa được phân tích cú pháp.