MACRO を使用して文字列を動的に作成したい。たとえば、int i が 1:n の範囲にあり、文字列 "testArray" があるとします。testArray[0]、testArray[1]、... testarray[n-1] を作成できるはずです。可能であればお知らせください。
以下はサンプルコードです:
void fun2(int x,std::string name)
{
/*do something*/
}
void fun1()
{
for (unsigned int i = 0 ;i < 5 ; ++i )
{
// I want to create a MACRO such that it create "testArray[0]","testArray[1]",..."testArray[4]" etc.
fun2(x,CREATE_ARRAY_ELEM ("testArray",i));
}
}
私は以下を試しましたが、うまくいきません:
#define STR1(x) #x
#define CREATE_INDEX(paramName,elementIndex) #paramName << "[" << elementIndex << "]"
#define CREATE_ARRAY_ELEM(paramName,elementIndex) CREATE_INDEX(paramName,elementIndex)
#define STRINGIZE_1(x) STR1(x)