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

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

Сообщение Anonymous »

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

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

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

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

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

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

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

 

Подробнее здесь: [url]https://stackoverflow.com/questions/79769583/how-to-specialize-a-function-template-locally-to-a-translation-unit[/url]
Ответить

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

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

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

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

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