У меня есть строковые теги в моем коде, которые преобразуются в числа и используются для поиска значений в структуре значений тега.
У меня есть что-то вроде этого:
void foo()
{
type value = search("SomeTag");
}
Где поиск определяется следующим образом:
type search(const char* tag)
{
return internal_search(toNumber(tag));
}
Поскольку все временные теги являются постоянными во время компиляции, я хочу удалить вызов, который преобразует тег в число из функции поиска. Я знаю, что во время компиляции можно выполнить некоторые простые функции с помощью шаблонов (http://en.wikipedia.org/wiki/Compile_time_function_execution), но я точно не знаю, как итерации по нулевой завершаемой строке и сохранить промежуточные значения в шаблоне. Можете ли вы дать простой пример, который выполняет итерацию строки с завершающим нулем и добавляет символы в общедоступной переменной?