Показать сообщение отдельно

  #4  
Старый 17.05.2025, 03:46
san0
Постоянный
Регистрация: 15.12.2013
Сообщений: 412
С нами: 6530249

Репутация: 133
По умолчанию

Цитата:
Сообщение от 0xff65  

Приветствую, пытаюсь собрать plugin-sdk. Возникает такая проблема -

Код:





Код:
1>CCoronas.cpp
1>D:\plugin-sdk-master\safetyhook\safetyhook.hpp(38,10): fatal error C1083: Не удается открыть файл включение: expected: No such file or directory,
1>CCover.cpp
1>D:\plugin-sdk-master\safetyhook\safetyhook.hpp(38,10): fatal error C1083: Не удается открыть файл включение: expected: No such file or directory,
1>CCoverPoint.cpp
1>D:\plugin-sdk-master\safetyhook\safetyhook.hpp(38,10): fatal error C1083: Не удается открыть файл включение: expected: No such file or directory,
1>CCredits.cpp
1>D:\plugin-sdk-master\safetyhook\safetyhook.hpp(38,10): fatal error C1083: Не удается открыть файл включение: expected:


Сборка выполняется на Visual Studio 19
Код:
std::expected
это часть редакции стандарта C++23 (https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p0323r12.html).

В MSVC(CL) он доступен начиная с Visual Studio 2022 17.3 (_MSC_VER >= 1933) (https://github.com/microsoft/STL/com...0304223308ac8b).

Сам проект должен быть настроен с использованием
Код:
/std:c++23preview
или
Код:
/std:c++latest
(https://learn.microsoft.com/en-us/cpp/build/reference/std-specify-language-standard-version). А для проверке на этапе сборки можно воспользоваться макросом
Код:
__cpp_lib_expected
(https://en.cppreference.com/w/cpp/feature_test#cpp_lib_expected).

Если такая функциональность нужна в том окружении, где последние реализации недоступны, то можно воспользоваться похожими абстракциями из популярных библиотек типа StatusOr из abseil или checked из Boost.Outcome. И кстати не стоит забывать за возможность поставить относительно портабельный и легковесный mingw (https://www.mingw-w64.org/, https://github.com/mstorsjo/llvm-mingw/releases), хотя думаю там также могут быть понадобиться модификации кода.

В Вашем случае полагаю проще будет или поставить любой бекпорт:

GitHub - TartanLlama/expected: C++11/14/17 std::expected with functional-style extensions

C++11/14/17 std::expected with functional-style extensions - TartanLlama/expected

github.com


Либо просто взять старую версию plugin-sdk:

История изменений => https://github.com/DK22Pac/plugin-sd...safetyhook.cpp

Предыдущий коммит до добавления safetyhook => https://github.com/DK22Pac/plugin-sd...b151308dd85b53

И конечно можно еще сделать git revert (https://git-scm.com/docs/git-revert) в master ветке, отменив кокретно добавление этой библиотеки, но это требует небольшого знания системы контроля версий, а также потребует некоторых изменений в коде, тем более что Вы не указали контекст использования (например, safetyhook - осознанный выбор в связи с поддержкой 64 битной трилогии которая unreal engine)
 
Ответить с цитированием