【发布时间】:2016-12-15 18:08:01
【问题描述】:
在 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 是真的,但事实并非如此。
这里有什么问题?
【问题讨论】:
标签: c++ c visual-studio