Clemapfel / jluna

Julia Wrapper for C++ with Focus on Safety, Elegance, and Ease of Use
https://clemens-cords.com/jluna
MIT License
252 stars 13 forks source link

Apple aarch64 Compiler Error, unable to compile jluna #64

Open Clemapfel opened 7 months ago

Clemapfel commented 7 months ago

On Apple machines with the aarch64 architecture, such as the M1/M2 Macs, compiler errors of the following type may appear when compiling jluna. These is due to integer-sizes of common types such as size_t or uint64_t being unusually redefined on these platforms.

Currently, there is no fix for this, I'm sure it is perfectly fixable I just do not have access to a machine to test and debug for it, and Apple makes it impossible to legally obtain such a platform without spending the money to get a physical device.

In file included from /Users/username/Documents/dev/ExternalThreads/jluna/.test/main.cpp:4:
In file included from /Users/username/Documents/dev/ExternalThreads/jluna/jluna.hpp:23:
In file included from /Users/username/Documents/dev/ExternalThreads/jluna/include/module.hpp:281:
/Users/username/Documents/dev/ExternalThreads/jluna/.src/module.inl:256:32: error: no matching function for call to 'box'
        create_or_assign(name, box<std::tuple<Ts...>>(std::make_tuple(args...)));
                               ^~~~~~~~~~~~~~~~~~~~~~
/Users/username/Documents/dev/ExternalThreads/jluna/.test/main.cpp:542:25: note: in instantiation of function template specialization 'jluna::Module::new_tuple<unsigned long long, std::string, int>' requested here
        auto res = Main.new_tuple("test", std::get<0>(value), std::get<1>(value), std::get<2>(value));
                        ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/symbol.inl:24:27: note: candidate function template not viable: no known conversion from 'tuple<typename __unwrap_ref_decay<unsigned long long &>::type, typename __unwrap_ref_decay<string &>::type, typename __unwrap_ref_decay<int &>::type>' (aka 'tuple<unsigned long long, std::string, int>') to 'const std::string' (aka 'const basic_string<char>') for 1st argument
    inline unsafe::Value* box(const std::string& value)
                          ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:26:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:25:14: note: because 'std::tuple<unsigned long long, std::string, int>' does not satisfy 'is_julia_value_pointer'
    template<is_julia_value_pointer T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:139:9: note: because 'std::is_same_v<std::tuple<unsigned long long, std::string, int>, jl_value_t *>' evaluated to false
        std::is_same_v<T, jl_value_t*> or
        ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:140:9: note: and 'std::is_same_v<std::tuple<unsigned long long, std::string, int>, jl_module_t *>' evaluated to false
        std::is_same_v<T, jl_module_t*> or
        ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:141:9: note: and 'std::is_same_v<std::tuple<unsigned long long, std::string, int>, jl_array_t *>' evaluated to false
        std::is_same_v<T, jl_array_t*> or
        ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:142:9: note: and 'std::is_same_v<std::tuple<unsigned long long, std::string, int>, jl_datatype_t *>' evaluated to false
        std::is_same_v<T, jl_datatype_t*> or
        ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:143:9: note: and 'std::is_same_v<std::tuple<unsigned long long, std::string, int>, jl_function_t *>' evaluated to false
        std::is_same_v<T, jl_function_t*> or
        ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:144:9: note: and 'std::is_same_v<std::tuple<unsigned long long, std::string, int>, jl_sym_t *>' evaluated to false
        std::is_same_v<T, jl_sym_t*> or
        ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:145:9: note: and 'std::is_same_v<std::tuple<unsigned long long, std::string, int>, jl_expr_t *>' evaluated to false
        std::is_same_v<T, jl_expr_t*> or
        ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:146:9: note: and 'std::is_same_v<std::tuple<unsigned long long, std::string, int>, jl_unionall_t *>' evaluated to false
        std::is_same_v<T, jl_unionall_t*>;
        ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:32:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:31:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, std::nullptr_t>' evaluated to false
    template<is<std::nullptr_t> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<std::nullptr_t>, is_same_or_const<tuple<unsigned long long, string, int>, std::nullptr_t> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:38:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:37:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, void *>' evaluated to false
    template<is<void*> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<void *>, is_same_or_const<tuple<unsigned long long, string, int>, void *> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:50:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:49:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, _Bool>' evaluated to false
    template<is<bool> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<_Bool>, is_same_or_const<tuple<unsigned long long, string, int>, _Bool> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:56:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:55:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, std::bool_constant<true> >' evaluated to false
    template<is<std::bool_constant<true>> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<integral_constant<_Bool, true> >, is_same_or_const<tuple<unsigned long long, string, int>, integral_constant<_Bool, true> > >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:62:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:61:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, std::bool_constant<false> >' evaluated to false
    template<is<std::bool_constant<false>> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<integral_constant<_Bool, false> >, is_same_or_const<tuple<unsigned long long, string, int>, integral_constant<_Bool, false> > >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:68:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:67:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, char>' evaluated to false
    template<is<char> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<char>, is_same_or_const<tuple<unsigned long long, string, int>, char> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:74:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:73:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, uint8_t>' evaluated to false
    template<is<uint8_t> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<unsigned char>, is_same_or_const<tuple<unsigned long long, string, int>, unsigned char> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:80:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:79:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, uint16_t>' evaluated to false
    template<is<uint16_t> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<unsigned short>, is_same_or_const<tuple<unsigned long long, string, int>, unsigned short> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:86:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:85:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, uint32_t>' evaluated to false
    template<is<uint32_t> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<unsigned int>, is_same_or_const<tuple<unsigned long long, string, int>, unsigned int> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:92:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:91:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, uint64_t>' evaluated to false
    template<is<uint64_t> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<unsigned long long>, is_same_or_const<tuple<unsigned long long, string, int>, unsigned long long> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:98:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:97:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, int8_t>' evaluated to false
    template<is<int8_t> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<signed char>, is_same_or_const<tuple<unsigned long long, string, int>, signed char> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:104:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:103:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, int16_t>' evaluated to false
    template<is<int16_t> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<short>, is_same_or_const<tuple<unsigned long long, string, int>, short> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:110:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:109:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, int32_t>' evaluated to false
    template<is<int32_t> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<int>, is_same_or_const<tuple<unsigned long long, string, int>, int> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:116:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:115:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, int64_t>' evaluated to false
    template<is<int64_t> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<long long>, is_same_or_const<tuple<unsigned long long, string, int>, long long> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:122:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:121:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, float>' evaluated to false
    template<is<float> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<float>, is_same_or_const<tuple<unsigned long long, string, int>, float> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:128:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:127:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, double>' evaluated to false
    template<is<double> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<double>, is_same_or_const<tuple<unsigned long long, string, int>, double> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:134:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:133:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, std::string>' evaluated to false
    template<is<std::string> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<string>, is_same_or_const<tuple<unsigned long long, string, int>, string> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:144:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:143:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, const char *>' evaluated to false
    template<is<const char*> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<const char *>, is_same_or_const<tuple<unsigned long long, string, int>, const char *> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/module.inl:20:27: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    inline unsafe::Value* box(T value)
                          ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/module.inl:19:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, Module>' evaluated to false
    template<is<Module> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<Module>, is_same_or_const<tuple<unsigned long long, string, int>, Module> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/box.hpp:116:20: note: candidate template ignored: substitution failure [with T = std::tuple<unsigned long long, std::string, int>]: no type named 'key_type' in 'std::tuple<unsigned long long, std::string, int>'
    unsafe::Value* box(const T& value);
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:155:20: note: candidate template ignored: substitution failure [with T = std::tuple<unsigned long long, std::string, int>]: no type named 'value_type' in 'std::tuple<unsigned long long, std::string, int>'
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:162:20: note: candidate template ignored: substitution failure [with T = std::tuple<unsigned long long, std::string, int>]: no type named 'value_type' in 'std::tuple<unsigned long long, std::string, int>'
    unsafe::Value* box(const T& value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:180:20: note: candidate template ignored: substitution failure [with T = std::tuple<unsigned long long, std::string, int>]: no type named 'key_type' in 'std::tuple<unsigned long long, std::string, int>'
    unsafe::Value* box(const T& value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:196:20: note: candidate template ignored: substitution failure [with T = std::tuple<unsigned long long, std::string, int>]: no type named 'value_type' in 'std::tuple<unsigned long long, std::string, int>'
    unsafe::Value* box(const T& value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:213:20: note: candidate template ignored: substitution failure [with T = std::tuple<unsigned long long, std::string, int>]: no type named 'first_type' in 'std::tuple<unsigned long long, std::string, int>'
    unsafe::Value* box(const T& value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/box.hpp:166:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T);
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/box.hpp:165:14: note: because 'std::tuple<unsigned long long, std::string, int>' does not satisfy 'is_usertype'
    template<is_usertype T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:244:27: note: because 'usertype_enabled<tuple<unsigned long long, string, int> >::value' evaluated to false
    concept is_usertype = usertype_enabled<T>::value;
                          ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:44:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:43:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, void>' evaluated to false
    template<is<void> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<void>, is_same_or_const<tuple<unsigned long long, string, int>, void> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:226:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(const T& value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/box.inl:225:14: note: because 'std::tuple<unsigned long long, std::string, int>' does not satisfy 'is_tuple'
    template<is_tuple T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:233:24: note: because substituted constraint expression is ill-formed: no matching function for call to 'is_tuple_aux'
    concept is_tuple = detail::is_tuple_aux<T>(std::make_index_sequence<std::tuple_size<T>::value>());
                       ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/proxy.inl:19:27: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    inline unsafe::Value* box(T value)
                          ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/proxy.inl:18:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, Proxy>' evaluated to false
    template<is<Proxy> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<Proxy>, is_same_or_const<tuple<unsigned long long, string, int>, Proxy> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/mutex.inl:11:20: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    unsafe::Value* box(T in)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/mutex.inl:10:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, jluna::Mutex>' evaluated to false
    template<is<jluna::Mutex> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<Mutex>, is_same_or_const<tuple<unsigned long long, string, int>, Mutex> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/symbol.inl:18:27: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    inline unsafe::Value* box(T value)
                          ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/symbol.inl:17:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, Symbol>' evaluated to false
    template<is<Symbol> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<Symbol>, is_same_or_const<tuple<unsigned long long, string, int>, Symbol> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/type.inl:19:27: note: candidate template ignored: constraints not satisfied [with T = std::tuple<unsigned long long, std::string, int>]
    inline unsafe::Value* box(T value)
                          ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/type.inl:18:14: note: because 'is<std::tuple<unsigned long long, std::string, int>, Type>' evaluated to false
    template<is<Type> T>
             ^
/Users/username/Documents/dev/ExternalThreads/jluna/include/concepts.hpp:39:18: note: because 'std::conditional_t<std::is_void_v<tuple<unsigned long long, string, int> >, std::is_void<Type>, is_same_or_const<tuple<unsigned long long, string, int>, Type> >::value' evaluated to false
    concept is = std::conditional_t<
                 ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/array.inl:15:20: note: candidate template ignored: substitution failure [with T = std::tuple<unsigned long long, std::string, int>]: no type named 'value_type' in 'std::tuple<unsigned long long, std::string, int>'
    unsafe::Value* box(T value)
                   ^
/Users/username/Documents/dev/ExternalThreads/jluna/.src/array.inl:26:20: note: candidate template ignored: substitution failure [with T = std::tuple<unsigned long long, std::string, int>]: no type named 'value_type' in 'std::tuple<unsigned long long, std::string, int>'
    unsafe::Value* box(T value)
Clemapfel commented 7 months ago

To reproduce these errors, on your mac, execute:

git clone https://github.com/jluna
cd jluna
git fetch
git checkout mac_literal
git pull
cmake .. -DBUILD_TESTING=ON
make -j 8
kouchy commented 4 months ago

Hi @Clemapfel,

First thank you very much for this very useful library, sincerely!

I also noticed the same problem on Apple Silicon CPUs. Do you have any plan to fix this? In any case I think it could be useful knowing that more and more CPUs are ARM-based nowadays :-)

Best regards.