1
#define EXTERNAL_API_VERSION 1.12.1
std::string version = boost::lexical_cast<std::string>(EXTERNAL_API_VERSION);

此代码生成编译错误:

error C2143: syntax error : missing ')' before 'constant'
error C2059: syntax error : ')'

是否有任何简单的替代方法可以将这种格式的数字(多于一个点)转换为字符串?

4

1 回答 1

5

在不接触的情况EXTERNAL_API_VERSION下,您需要将该 marco 扩展为两个级别的字符串文字:

#define S(X) #X
#define STR(X) S(X)

std::string version = STR(EXTERNAL_API_VERSION);
于 2013-10-15T14:09:03.673 回答