Skip to content

Compilation failed on Traits.hpp with XCode 16 #10

@ouj

Description

@ouj

XCode16 have a stricter static assert

error: static assertion failed due to requirement '!__is_same(float, float)': std::declval can only be used in an unevaluated context. It's likely that your current usage is trying to extract a value from the function.

https://github.com/gavv/libASPL/blob/main/src/Traits.hpp

╭─    ~/work/loomhq/libASPL   main ··················································································································································· ✘ 2   3s  12:17:47 PM 
╰─ make                                                                                                                                                                                                           (base)
mkdir -p build/Release
cd build/Release && cmake -Wno-dev -DCMAKE_BUILD_TYPE=Release ../..
-- Detected version from git: 3.1.0
-- Configuring done (0.1s)
-- Generating done (0.0s)
-- Build files have been written to: /Users/jou2/work/loomhq/libASPL/build/Release
cd build/Release && make -j12
[  4%] Building CXX object CMakeFiles/libASPL.dir/src/Plugin.g.cpp.o
[  8%] Building CXX object CMakeFiles/libASPL.dir/src/Driver.cpp.o
[ 12%] Building CXX object CMakeFiles/libASPL.dir/src/Storage.cpp.o
[ 16%] Building CXX object CMakeFiles/libASPL.dir/src/Uid.cpp.o
[ 24%] Building CXX object CMakeFiles/libASPL.dir/src/Strings.cpp.o
[ 24%] Building CXX object CMakeFiles/libASPL.dir/src/Convert.cpp.o
[ 28%] Building CXX object CMakeFiles/libASPL.dir/src/Tracer.cpp.o
[ 32%] Building CXX object CMakeFiles/libASPL.dir/src/Strings.g.cpp.o
[ 36%] Building CXX object CMakeFiles/libASPL.dir/src/Client.cpp.o
[ 40%] Building CXX object CMakeFiles/libASPL.dir/src/Dispatcher.cpp.o
[ 48%] Building CXX object CMakeFiles/libASPL.dir/src/VolumeCurve.cpp.o
[ 48%] Building CXX object CMakeFiles/libASPL.dir/src/VolumeControl.g.cpp.o
In file included from /Users/jou2/work/loomhq/libASPL/src/VolumeControl.g.cpp:10:
In file included from /Users/jou2/work/loomhq/libASPL/include/aspl/VolumeControl.hpp:9:
In file included from /Users/jou2/work/loomhq/libASPL/include/aspl/Direction.hpp:9:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.0.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CoreFoundation.h:28:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.0.sdk/usr/include/c++/v1/math.h:359:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.0.sdk/usr/include/c++/v1/__math/copysign.h:15:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.0.sdk/usr/include/c++/v1/__type_traits/promote.h:15:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.0.sdk/usr/include/c++/v1/__utility/declval.h:31:17: error: static assertion failed due to requirement '!__is_same(float, float)': std::declval can only be used in an unevaluated context. It's likely that your current usage is trying to extract a value from the function.
   31 |   static_assert(!__is_same(_Tp, _Tp),
      |                 ^~~~~~~~~~~~~~~~~~~~
/Users/jou2/work/loomhq/libASPL/src/Traits.hpp:34:21: note: in instantiation of function template specialization 'std::declval<float>' requested here
   34 |         return std::declval<Return>();
      |                     ^
1 error generated.
make[3]: *** [CMakeFiles/libASPL.dir/src/VolumeControl.g.cpp.o] Error 1
make[3]: *** Waiting for unfinished jobs....
In file included from /Users/jou2/work/loomhq/libASPL/src/Plugin.g.cpp:10:
In file included from /Users/jou2/work/loomhq/libASPL/include/aspl/Plugin.hpp:9:
In file included from /Users/jou2/work/loomhq/libASPL/include/aspl/Device.hpp:9:
In file included from /Users/jou2/work/loomhq/libASPL/include/aspl/Client.hpp:9:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.0.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CoreFoundation.h:28:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.0.sdk/usr/include/c++/v1/math.h:359:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.0.sdk/usr/include/c++/v1/__math/copysign.h:15:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.0.sdk/usr/include/c++/v1/__type_traits/promote.h:15:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.0.sdk/usr/include/c++/v1/__utility/declval.h:31:17: error: static assertion failed due to requirement '!__is_same(const std::string &, const std::string &)': std::declval can only be used in an unevaluated context. It's likely that your current usage is trying to extract a value from the function.
   31 |   static_assert(!__is_same(_Tp, _Tp),
      |                 ^~~~~~~~~~~~~~~~~~~~
/Users/jou2/work/loomhq/libASPL/src/Traits.hpp:67:21: note: in instantiation of function template specialization 'std::declval<const std::string &>' requested here
   67 |         return std::declval<nth_argument_t<Args...>>();
      |                     ^
1 error generated.
make[3]: *** [CMakeFiles/libASPL.dir/src/Plugin.g.cpp.o] Error 1
make[2]: *** [CMakeFiles/libASPL.dir/all] Error 2
make[1]: *** [all] Error 2
make: *** [release_build] Error 2

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions