我必须根据编译时间常数参数编写相同的代码,例如:
map["text 0"] = vec[0];
map["text 1"] = vec[1];
...
map["text n"] = vec[n];
问题是我不知道n
何时编写代码,我将其作为模板参数接收。显而易见的解决方案是使用一个循环并"text k"
在循环内部生成并使用vec[k]
,但这会在编译时完成时会产生运行时开销。另一种解决方案是将函数专门用于不同的N
值,但这样我将不得不多次手动编写相同的代码,并且没有理由将其设为模板。
我知道有一些智能宏可以重复类似的事情 N 次(如BOOST_PP_REPEAT
宏系列),但我找不到针对我的具体问题的解决方案。
你有解决这个问题的方法吗?