diff --git a/src/neo/concepts.hpp b/src/neo/concepts.hpp index e278e93..1a90ebe 100644 --- a/src/neo/concepts.hpp +++ b/src/neo/concepts.hpp @@ -45,7 +45,12 @@ concept destructible = requires { template concept constructible_from = destructible - and requires(Args&&... args) { T(NEO_FWD(args)...); } + and requires(Args&&... args) { T((Args&&)(args)...); } + #if NEO_HAS_BUILTIN(__is_constructible) + and __is_constructible(T, Args...) + #else + and std::is_constructible_v + #endif ; /// Check whether one can static_cast(From)