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に、そのマルコを 2 つのレベルで文字列リテラルに展開する必要があります。

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

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