Модули C++20 не могут экспортировать специализацию классов ⇐ C++
-
Anonymous
Модули C++20 не могут экспортировать специализацию классов
Мне не удается скомпилировать следующий код 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& оператор
Мне не удается скомпилировать следующий код 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& оператор
Мобильная версия