Hello,

Par un jeu un peu étonnant, je suis arrivé à un code comme ceci :

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");
};
Ca fait bien le taff :
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>();
}
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 ?

Merci d'avance