The second form "Initializes the base or member named by class-or-identifier using list-initialization (which becomes ... aggregate-initialization when initializing an aggregate)", linking to http://en.cppreference.com/w/cpp/language/list_initialization
There are many minor differences, but the one that is relevant to your choice of types is this:
list-initialization limits the allowed implicit conversions by prohibiting the following:
* conversion from a floating-point type to an integer type
If T is a class type and the initializer list has a single element of the same or derived type (possibly cv-qualified), the object is initialized from that element (... by direct-initialization for direct-list-initialization).