есть
template<int a>
int foo() {
return a;
}
то это не one-defined функция?
Надо объявлять inline
Шаблоны и ODR -- вещи ортогональные.
шаблоны автоматически считаются инлайновыми функциями, а тех может быть объявлено сколько душе угодно — линкер выкинет лишние определения и оставит одно если окажется, что эти определения различались — быть беде и ODR Violation
для каждого a это новая функция
а сколько раз это инстанцируется?
Во-первых, шаблон это не функция. Во-вторых, шаблоны функций неявно инлайн
Обсуждают сегодня