Полная специализация шаблона с использованием void{} дает разные результаты в GCC и ClangC++

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

Сообщение Anonymous »

Этот код выводит: Флаг -std=c++17 используется обоими компиляторами.

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

#include 
#include 
#include 

namespace my_namespace {

template 
void format(std::ostream &os, const T &t) = delete;

template 
struct is_formattable : std::false_type {};

template 
struct is_formattable : std::true_type {};

}

struct S {
int a;
};

namespace my_namespace {

template  void format(std::ostream &os, const S &s) {
os 

Подробнее здесь: [url]https://stackoverflow.com/questions/79888996/full-template-specialization-using-void-produces-different-results-on-gcc-and[/url]
Ответить

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

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

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

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

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