Я наткнулся на странную проблему. Я сделал модуль C ++ 20 со следующим контентом (файл module.cppm): < /p>
module;
#include
#include
export module foo;
export namespace bar {
using std::regex;
using std::smatch;
using std::regex_search;
using std::string;
}
< /code>
Я использую этот модуль в следующем коде (файл main.cpp): < /p>
import foo;
int main() {
bar::regex regex;
bar::smatch match;
bar::string s;
bar::regex_search(s, match, regex);
}
< /code>
my cmakelists.txt выглядит так: < /p>
cmake_minimum_required(VERSION 4.0.0)
set(CMAKE_CXX_STANDARD 23)
project(cpptest)
add_library(module STATIC)
target_sources(module PUBLIC FILE_SET CXX_MODULES FILES module.cppm)
add_executable(cpptest main.cpp)
target_link_libraries(cpptest module)
< /code>
При попытке создать следующие команды: < /p>
cmake -B build -G Ninja
cmake --build ./build/
< /code>
Я получаю следующие ошибки: < /p>
/usr/local/gcc-15.1/include/c++/15/bits/regex.tcc:56:16: error: ‘std::__cxx11::basic_regex::_AutomatonPtr std::__cxx11::basic_regex::_M_automaton’ is private within this context
56 | if (__re._M_automaton == nullptr)
| ~~~~~^~~~~~~~~~~~
/usr/local/gcc-15.1/include/c++/15/bits/regex.h:848:25: note: declared private here
848 | _AutomatonPtr _M_automaton;
< /code>
Мой компилятор - GCC 15.1, Cmake 4.0.3. Вот воспроизведение этого примера на Godbolt. Если вы скомпилируете один и тот же пример в Clang, нет проблем. < /P>
Есть ли быстрое решение для этого? Знает ли GCC об этой проблеме?
Подробнее здесь: https://stackoverflow.com/questions/797 ... rom-module
Используйте std :: regex_search Calling из модуля ⇐ C++
Программы на C++. Форум разработчиков
-
Anonymous
1757079972
Anonymous
Я наткнулся на странную проблему. Я сделал модуль C ++ 20 со следующим контентом (файл module.cppm): < /p>
module;
#include
#include
export module foo;
export namespace bar {
using std::regex;
using std::smatch;
using std::regex_search;
using std::string;
}
< /code>
Я использую этот модуль в следующем коде (файл main.cpp): < /p>
import foo;
int main() {
bar::regex regex;
bar::smatch match;
bar::string s;
bar::regex_search(s, match, regex);
}
< /code>
my cmakelists.txt выглядит так: < /p>
cmake_minimum_required(VERSION 4.0.0)
set(CMAKE_CXX_STANDARD 23)
project(cpptest)
add_library(module STATIC)
target_sources(module PUBLIC FILE_SET CXX_MODULES FILES module.cppm)
add_executable(cpptest main.cpp)
target_link_libraries(cpptest module)
< /code>
При попытке создать следующие команды: < /p>
cmake -B build -G Ninja
cmake --build ./build/
< /code>
Я получаю следующие ошибки: < /p>
/usr/local/gcc-15.1/include/c++/15/bits/regex.tcc:56:16: error: ‘std::__cxx11::basic_regex::_AutomatonPtr std::__cxx11::basic_regex::_M_automaton’ is private within this context
56 | if (__re._M_automaton == nullptr)
| ~~~~~^~~~~~~~~~~~
/usr/local/gcc-15.1/include/c++/15/bits/regex.h:848:25: note: declared private here
848 | _AutomatonPtr _M_automaton;
< /code>
Мой компилятор - GCC 15.1, Cmake 4.0.3. Вот воспроизведение этого примера на Godbolt. Если вы скомпилируете один и тот же пример в Clang, нет проблем. < /P>
Есть ли быстрое решение для этого? Знает ли GCC об этой проблеме?
Подробнее здесь: [url]https://stackoverflow.com/questions/79756785/use-stdregex-search-called-from-module[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия