我提供了使用float或double类型编译程序的选项,但是有一个问题:我需要手动设置GL_FLOAT或GL_DOUBLE,因为我不知道如何执行以下操作:
typedef float MYTYPE;
#if MYTYPE == float
#define GL_MYTYPE GL_FLOAT // used for vertex array parameters.
#else
#define GL_MYTYPE GL_DOUBLE
#endif
注意:我没有C++ 11或任何东西,只有好的旧C++。
最佳答案
您可以这样进行:
#define MYFLOAT
#ifdef MYFLOAT
typedef float MYTYPE;
#define GL_MYTYPE GL_FLOAT // used for vertex array parameters.
#else
typedef double MYTYPE;
#define GL_MYTYPE GL_DOUBLE
#endif
如果要使用
MYFLOAT
,则需要定义float
,或者省略它以使用double
。PS:保持索引不在编译时评估,而是在预处理时评估。