Как специализироваться на шаблоне функции локально на блок переводаC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как специализироваться на шаблоне функции локально на блок перевода

Сообщение Anonymous »

У меня есть функция шаблона, определенная в заголовке foo.hpp , скажем:

Код: Выделить всё

#include 
template< typename = void >
inline void foo() { std::cout 

Специализированная реализация

Специализированная реализация < /p>
< /blockquote>
и, если я переключаю специализацию < /code> с bar.cpp < /code> to aby.c. get: < /p>

реализация по умолчанию

реализация по умолчанию < /p>
< /blockquote>
Я ожидаю, что специализация будет локальной для перевода (по крайней мере, когда функция шаблона будет внедрена), и оказалось, что я ошибаюсь. Кроме того, я чрезвычайно смущен тем, что компилятор/линкер молча игнорирует одну из версий foo () 
, предположительно, в зависимости от порядка связывания. и/или уровень линкера, который объясняет наблюдаемое поведение?>

Подробнее здесь: https://stackoverflow.com/questions/797 ... ation-unit
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»