я должен написать тот же код зависит от времени компиляции постоянным параметром, что-то вроде:Macro повторить почти тот же код
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
macro family), но я не могу найти решение для моей конкретной проблемы.
У вас есть решение проблемы?
Можно ли использовать C++ 11? – jrok
@jrok Да, но не все функции (VS2010 и последний Xcode) – Felics
Шаблоны и петли, вероятно, могут быть оптимизированы компилятором. –