I've just discovered that this is legal in c++. int x={10}; What's the point of allowing this? Is it just to be consistent with the initialisation of structs and arrays? Are these 3 all equivalent then? int x(10); int x =10; int x ={10};