我需要根据编译时常量参数编写相同的代码,类似于:
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
宏系列),但我找不到适用于我的特定问题的解决方案。你有没有解决这个问题的办法?
vec
和map
是什么?(为了明确起见)您能否编写一个您打算使用的函数示例,以便我们在反思时有一个起点;因为目前,我担心不是很清楚 :x - Matthieu M.