To be more specific why
std::is_assignable_v<int, int> << '\n';
returns false
? Is it because an int has no overloaded assignment operator (being a primitive type and all)?
(by the way std::is_trivially_assignable_v<int, int>
gives false
too.)
Note that this:
struct Structure {};
std::is_assignable<class Structure, class Structure>::value;
would return true
, because an overloaded assignment operator is implicitly defined for Structure
.
Am i correct so far? If so then I suppose it wouldn't be trivial to enhance is_assignable
to accept primitive types as well? Otherwise, any hints for such a possible work-around?
is_fundemental
oris_assignable
– Perishable