Могу ли я запустить предупреждение компилятора и без ошибки связывания, только с шаблонной объявлением?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Могу ли я запустить предупреждение компилятора и без ошибки связывания, только с шаблонной объявлением?

Сообщение Anonymous »

Я хочу написать объявление, шаблонное на типе, такое, что: < /p>

[*] Если не экземпляр, не вызывает никаких предупреждений компилятора или ошибок, даже при строгих предупреждающих флагах. Предупреждение компилятора должно быть «типичным» в том смысле, что имя функции и аргумент типа шаблона печатаются.
[*] Не требуется никаких заголовков. /> < /ol>
Это требования. Теперь для того, что желательно, но не абсолютно необходимо: < /p>
  • работает с как можно большим количеством компиляторов. Указано. < /li>
    < /ul>
    Примечания: < /strong> < /p>

    Объявленная сущность может быть функцией, типом или чем-либо еще, что может быть шаблон. В отношении альтернативного потенциального ответа на этот вопрос, но мне также вообще любопытно. PrettyPrint-Override ">

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

    template [[deprecated]] void f(){}
    < /code>
    < /li>
     Проектное требование (5.)-Мы можем использовать:
    template  inline void f();
    < /code>
    Это создает соответствующее предупреждение с Clang и GCC; А с GCC это предупреждение одной линии. К сожалению, когда вы ссылаетесь, вы получаете ошибку. < /Li>
     Превышение действительного C ++, но не в зависимости от компиляции C ++ 17, мы можем использовать конструкцию только GCC:
    template 
    [[gnu::warning("some text here")]]
    void f() {}
    


Подробнее здесь: https://stackoverflow.com/questions/796 ... ed-declara
Ответить

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

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

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

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

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