Параметр значения шаблона

173
16 мая 2018, 21:00

Почему параметр значения шаблона обязан быть константой, если создание кода выполняется во время выполнения?

template<int a>
void foo ()
{
    cout << a << endl;
}
int main()
{
    int b = 10;
    foo<b>();
    return 0;
}
Answer 1

Вообще не понятно, что вы хотите написать.
Если вам необходима шаблонная функция печати, то вы неправильно делаете, надо вот так:

template<typename T>
void foo (const T& var)
{
    std::cout << var << std::endl;
}
int main()
{
    int b = 10;
    foo(b);
    return 0;
}

При компиляции данного кода, шаблонная функция foo будет развернута для типа int.
По синтаксису шаблонов много информации в интернете.
http://cppstudio.com/post/5188/
https://ru.wikipedia.org/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B_C%2B%2B

READ ALSO
Вывести элементы стека кратные 3

Вывести элементы стека кратные 3

Получилось только просто сделать классический стек

221
Умные указатели C++

Умные указатели C++

Есть такой код:

218
Как перевести строку в число

Как перевести строку в число

Имеется ли в с++ готовая функция которая бы могла попытаться преобразовать строку в число (double к примеру), и при неудаче возвращала бы не ноль,...

226
не переводит в переменную

не переводит в переменную

подскажите пожалуйста у меня в переменной int res не приводит к целому значению

235