Выполнение функции времени компиляции C ++

В моем коде есть строковые теги, которые преобразуются в числа и используются для поиска значений в структуре значения тега.

У меня есть что-то вроде этого:

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 ), но я не знаю точно, как выполнить итерацию по нулю завершенная строка и сохраните промежуточные значения в шаблоне. Не могли бы вы привести простой пример, который выполняет итерацию строки с завершающим нулем и добавляет символы в общедоступную переменную?

12
задан sbi 3 May 2011 в 12:33
поделиться