0

コンパイル時にいくつかの文字列リテラルを連結したい:

#include <iostream>

#define VAR0 "var0 text"
#define VAR1 "var1 text"
#define VAR2 "var2 text"

static const char* concat = "var0:" VAR0 " var1:" VAR1 " var2:" VAR2 ;

int main(int argc, char *argv[])
{
    std::cout << concat << std::endl;
    return(0);
}

これで問題ありませんが、マクロの代わりに定数式を使用したいと思います。C++ 03 でこれを行う簡単な方法はありますか?

4

1 に答える 1

2

リテラルの連結のみ可能です。C++03 では、ジェネリック定数 char 配列式を連結する方法がありません。ただし、 Boost.MPLboost::mpl::stringから奇妙なテンプレートの嫌悪感を連結することは可能です。

于 2013-02-06T10:48:19.153 に答える