Почему я не могу специализироваться в форматере Std :: Formatter внутри моего пространства имен?C++

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

Сообщение Anonymous »

Я хочу специализировать std :: formatter внутри моего пространства имен. Однако это не работает так, как я хочу (вариант 1). Он работает вне пространства имен (вариант 3), а также с обходным пути внутри пространства имен (вариант 2). < /P>

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

#include 
#include 
#include 
#include 

class Class {};

#define VARIANT 1

namespace Namespace {

#if VARIANT == 1
template 
struct std::formatter : std::formatter {
auto format(const Class& Class, auto& context) const {
return std::formatter::format("CLASS", context);
}
};
#endif

#if VARIANT == 2
template 
requires std::same_as
struct std::formatter : std::formatter {
auto format(const Class& Class, auto& context) const {
return std::formatter::format("CLASS", context);
}
};
#endif

}  // namespace Namespace

#if VARIANT == 3
template 
struct std::formatter : std::formatter {
auto format(const Class& Class, auto& context) const {
return std::formatter::format("CLASS", context);
}
};
#endif

int main() { std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79569560/why-cant-i-specialize-stdformatter-inside-of-my-namespace[/url]
Ответить

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

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

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

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

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