Hello,
Par un jeu un peu étonnant, je suis arrivé à un code comme ceci :
Ca fait bien le taff :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 template<typename T> class assert_type_not_copyable { static_assert(not std::is_copy_constructible<T>(), "Error! Type should not be copy constructible"); static_assert(not std::is_copy_assignable<T>(), "Error! Type should not be copy assignable"); };
Mon interrogation vient du fait que je dois mettre les parenthèses lors de l'utilisation, comme ci on appelait la classe. Il se passe quoi en fait ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 class OK { OK(const OK&) = delete; OK& operator=(const OK&) = delete; }; int main() { assert_type_not_copyable<OK>(); }
Merci d'avance
Partager