Siv3D / OpenSiv3D

C++20 framework for creative coding 🎮🎨🎹 / Cross-platform support (Windows, macOS, Linux, and the Web)
https://siv3d.github.io/
MIT License
994 stars 136 forks source link

boost 1.74 doesn't actually conform to c++20 #1222

Open pillowtrucker opened 4 months ago

pillowtrucker commented 4 months ago

エラーの内容 | Describe the build error

FAILED: OpenSiv3D/Linux/CMakeFiles/Siv3D.dir/__/Siv3D/src/Siv3D-Platform/Linux/Siv3D/ChildProcess/ChildProcessDetail.cpp.o 
/nix/store/ld6dvi0n7qai3gzdrb85ykj4s4r0h4r7-clang-wrapper-18.1.1/bin/clang++ -DAS_USE_NAMESPACE -DMUPARSER_STATIC -DWITH_MINIAUDIO -DWITH_NOSOUND -D_GLFW_X11 -D_UNICODE -D__LINUX_ALSA__ -I/home/wrath/GAME/OpenSiv3D/Linux -I/home/wrath/GAME/OpenSiv3D/Linux/../Siv3D/include -I/home/wrath/GAME/OpenSiv3D/Linux/../Siv3D/include/ThirdParty -I/home/wrath/GAME/OpenSiv3D/Linux/../Siv3D/src -I/home/wrath/GAME/OpenSiv3D/Linux/../Siv3D/src/Siv3D-Platform/Linux -I/home/wrath/GAME/OpenSiv3D/Linux/../Siv3D/src/Siv3D-Platform/macOS_Linux -I/home/wrath/GAME/OpenSiv3D/Linux/../Siv3D/src/Siv3D-Platform/OpenGL4 -I/home/wrath/GAME/OpenSiv3D/Linux/../Siv3D/src/Siv3D-Platform/OpenGLES3 -I/home/wrath/GAME/OpenSiv3D/Linux/../Siv3D/src/ThirdParty -I/home/wrath/GAME/OpenSiv3D/Linux/../Siv3D/src/ThirdParty/asio -I/home/wrath/GAME/OpenSiv3D/Linux/../Siv3D/src/ThirdParty/freetype -I/home/wrath/GAME/OpenSiv3D/Linux/../Siv3D/src/ThirdParty/skia -I/home/wrath/GAME/OpenSiv3D/Linux/../Siv3D/src/ThirdParty/soloud/include -I/nix/store/gbycgp5065ch9ld2m7ws9zsn2x206z1v-opencv-4.9.0/include/opencv4 -I/nix/store/npsd46p4h7i0jdvll62zm8qjgx30i8m3-opusfile-0.12-dev/include/opus -I/nix/store/nmvh6xnj2znv5cjw48mhqmpwz0jsqa4r-libopus-1.5.1-dev/include/opus -I/nix/store/1f0gg0j5z1s4k75z2dwhh0m8cps8rk8c-soundtouch-2.3.2/include/soundtouch -I/nix/store/1rfyg1am0sqclfn4i21whpbf3s8msgna-gtk+3-3.24.41-dev/include/gtk-3.0 -I/nix/store/prdsa3f411y7kmd5w0kyaf9cwj635mc3-at-spi2-core-2.50.2-dev/include/atk-1.0 -I/nix/store/z1xzvmw2bzzk3x403zab39lq0r2sxbkw-glib-2.78.4-dev/include/glib-2.0 -I/nix/store/q6jyzkl2f1capj5yc0rq65i0zfm9b82k-glib-2.78.4/lib/glib-2.0/include -I/nix/store/y66wf2widknj05vg13lcmipdsl9xzlk0-cairo-1.18.0-dev/include/cairo -I/nix/store/ic5wzcpy0mbj7qpxg05j8zdihh3yc986-libpng-apng-1.6.43-dev/include/libpng16 -I/nix/store/fbz0bx2sixjn963jqkjjphdcrm3ig268-gdk-pixbuf-2.42.10-dev/include/gdk-pixbuf-2.0 -I/nix/store/m1kx60ln0zyg4nywl8yrpl6zy0g10srl-pango-1.51.2-dev/include/pango-1.0 -I/nix/store/86flfz614gqln2znq398351jkbx93cd4-harfbuzz-8.3.0-dev/include/harfbuzz -I/nix/store/6lwpqjzka4lpjm3j0mljknla9a2h8lmy-util-linux-minimal-2.39.3-dev/include/uuid -g -std=c++20 -Wall -Wextra -Wno-unknown-pragmas -fPIC -msse4.1 -fcolor-diagnostics -g3 -O0 -pg -DDEBUG -MD -MT OpenSiv3D/Linux/CMakeFiles/Siv3D.dir/__/Siv3D/src/Siv3D-Platform/Linux/Siv3D/ChildProcess/ChildProcessDetail.cpp.o -MF OpenSiv3D/Linux/CMakeFiles/Siv3D.dir/__/Siv3D/src/Siv3D-Platform/Linux/Siv3D/ChildProcess/ChildProcessDetail.cpp.o.d -o OpenSiv3D/Linux/CMakeFiles/Siv3D.dir/__/Siv3D/src/Siv3D-Platform/Linux/Siv3D/ChildProcess/ChildProcessDetail.cpp.o -c /home/wrath/GAME/OpenSiv3D/Siv3D/src/Siv3D-Platform/Linux/Siv3D/ChildProcess/ChildProcessDetail.cpp
In file included from /home/wrath/GAME/OpenSiv3D/Siv3D/src/Siv3D-Platform/Linux/Siv3D/ChildProcess/ChildProcessDetail.cpp:12:
In file included from /home/wrath/GAME/OpenSiv3D/Linux/../Siv3D/include/Siv3D/FileSystem.hpp:13:
In file included from /home/wrath/GAME/OpenSiv3D/Linux/../Siv3D/include/Siv3D/Common.hpp:14:
In file included from /home/wrath/GAME/OpenSiv3D/Linux/../Siv3D/include/Siv3D/Types.hpp:13:
In file included from /nix/store/j3027vyh2blzvwpn32nvc4fpfhqzi8x9-libcxx-18.1.1-dev/include/c++/v1/cstdint:143:
In file included from /nix/store/j3027vyh2blzvwpn32nvc4fpfhqzi8x9-libcxx-18.1.1-dev/include/c++/v1/__assert:13:
In file included from /nix/store/j3027vyh2blzvwpn32nvc4fpfhqzi8x9-libcxx-18.1.1-dev/include/c++/v1/__assertion_handler:13:
In file included from /nix/store/j3027vyh2blzvwpn32nvc4fpfhqzi8x9-libcxx-18.1.1-dev/include/c++/v1/__config:517:
/nix/store/gzxqm8dyfirbysqjhh78ivam62ll0m87-glibc-2.39-5-dev/include/features.h:414:4: warning: _FORTIFY_SOURCE requires compiling with optimization (-O) [-W#warnings]
  414 | #  warning _FORTIFY_SOURCE requires compiling with optimization (-O)
      |    ^
In file included from /home/wrath/GAME/OpenSiv3D/Siv3D/src/Siv3D-Platform/Linux/Siv3D/ChildProcess/ChildProcessDetail.cpp:13:
In file included from /home/wrath/GAME/OpenSiv3D/Siv3D/src/Siv3D-Platform/Linux/Siv3D/ChildProcess/ChildProcessDetail.hpp:14:
In file included from include/boost/process/child.hpp:25:
In file included from include/boost/process/posix.hpp:8:
In file included from include/boost/process/detail/posix/fd.hpp:15:
In file included from include/boost/process/detail/used_handles.hpp:15:
In file included from include/boost/process/detail/posix/asio_fwd.hpp:10:
In file included from include/boost/asio/ts/netfwd.hpp:29:
In file included from include/boost/asio/execution/blocking.hpp:19:
include/boost/asio/detail/type_traits.hpp:89:7: error: no member named 'result_of' in namespace 'std'; did you mean '::boost::result_of'?
   89 | using std::result_of;
      |       ^~~~~
include/boost/utility/result_of.hpp:61:29: note: '::boost::result_of' declared here
   61 | template<typename F> struct result_of;
      |                             ^
1 warning and 1 error generated.

再現方法 | To Reproduce

try to build OpenSiv3D with -std=c++20

ビルド環境 | Develop environment (please complete the following information):

備考 | Additional context

Reputeless commented 4 months ago

The Boost version will be upgraded to 1.83.0 in the currently under development Siv3D v0.8.0. In v0.6.x, it is difficult to update Boost because some features depend on functionalities that were removed in Boost 1.75.0.

pillowtrucker commented 4 months ago

that's great! thank you

pillowtrucker commented 4 months ago

I think adding add_compile_definitions(BOOST_ASIO_HAS_STD_INVOKE_RESULT) to https://github.com/Siv3D/OpenSiv3D/blob/main/Linux/CMakeLists.txt fixes the compilation with llvm18 in the meantime

pillowtrucker commented 4 months ago

yeah that fixed it. I don't know if it's worth adding or mentioning in the readme. I'm probably the only person who is trying to build stuff with llvm18