Модули C++20 не могут экспортировать специализацию классовC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Модули C++20 не могут экспортировать специализацию классов

Сообщение Anonymous »


Мне не удается скомпилировать следующий код C++ в Сообществе Microsoft Visual Studio:

// Extensions.ixx модуль экспорта helpers.extensions; импортировать ; импортировать ; импортировать ; шаблон экспорта концепция CEnum = требуется (T t) { требуется std::is_enum_v; }; шаблон экспорта struct std::formatter : std::formatter { constexpr auto format (Enum e, std::format_context& ctx) const { return formatter::format(std::format("{}", "123"), ctx); } }; шаблон экспорта constexpr ostream& оператор контекст создания шаблона (сначала самый старый) 1> C:\Users\Aakash\source\repos\EfficientCompiler\EfficientCompiler\main.cpp(15,10): 1> см. ссылку на создание экземпляра шаблона функции 'ostream &operator (компиляция исходного файла «main.cpp») 1>C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\format(3574,1): 1> см. декларацию «std::formatter» Если я перенесу определение formatter в main.cpp, я смогу успешно скомпилировать код:

// Extensions.ixx модуль экспорта helpers.extensions; импортировать ; импортировать ; импортировать ; шаблон экспорта концепция CEnum = требуется (T t) { требуется std::is_enum_v; }; шаблон экспорта constexpr ostream& оператор
Ответить

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

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

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

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

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