2013-02-06 65 views
0

我想在編譯時來連接數字字符串字面量:C++替代宏編譯時字符串字面串聯

#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中做到這一點?

+0

[C++模板字符串連接(http://stackoverflow.com/questions/4693819/c-template-string-concatenation) – SomeWittyUsername

+0

@icepack的可能重複的串聯怪異模板憎惡boost::mpl::string :感謝您的鏈接。不幸的是,可能的重複被標記爲C++ 11。它從可變參數模板的前提開始。我正在尋找一個C++ 03解決方案。 –

回答

2

它只能連接文字。沒有辦法在C++ 03中連接泛型常量字符數組表達式。然而,有可能從Boost.MPL