Как я могу выдать предупреждение (но не ошибку), когда используется экземпляр шаблона по умолчанию, а не специализированC++

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

Сообщение Anonymous »


Я пишу полубиблиотеку (кусок кода, который уже давно используется в моей компании многими инженерами). Я хотел бы разместить предупреждение компиляции, если разработчик не специализируется на определенной шаблонной функции. Желаемое поведение заключается в том, чтобы оно не нарушало сборку (программное обеспечение будет работать нормально), но отсутствующая реализация должна быть четко видна в процессе сборки.

Я решил использовать ключевое слово deprecated, так как это единственное контекстно-зависимое предупреждение, которое я смог найти и отображающее тип экземпляра шаблона, чтобы можно было легко обнаружить ошибку.

Следующий код соответствует моему желаемому поведению и работает правильно:

bar() — это шаблонная функция, которая мне нужна

#include template [[deprecated("используя реализацию по умолчанию")]] void alert() {}; template void bar(); template void bar() { alert(); std::cout
Ответить

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

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

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

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

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