在Visual Studio 2015中,#define USE_SQLDB
指令不能达到预期效果
我有一个解释问题的最小例子
#include "stdafx.h"
#define USE_SQLITE
//#define USE_MYSQL
#define USE_SQLDB (defined(USE_SQLITE) || defined(USE_MYSQL))
int main()
{
#if defined(USE_SQLITE)
puts("SQLITE"); // OK
#endif
#if defined(USE_MYSQL)
puts("MYSQL"); // Grayed out - OK
#endif
// Should expand to defined(USE_SQLITE) || defined(USE_MYSQL)
#if USE_SQLDB
puts("SQLITE or MYSQL"); // Grayed out - NOT OK
#endif
#if defined(USE_SQLITE) || defined(USE_MYSQL)
puts("SQLITE or MYSQL"); // OK
#endif
return 0;
}
我希望USE_SQLDB
是真的,但事实并非如此
这有什么不对?