In C++ when using initializer_list syntax to initialize an object, the regular constructors of the object also participate in overload resolution, when no other list initial
I don't like this style at all, as it makes me think the object does not have a regular constructor.
If it's an aggregate type, aggregate initialization is performed. Otherwise, it considers the constructors. If it makes you think that the class is an aggregate, that is not a language problem.
Is there a reason to now prefer this syntax over regular constructor calls?
If you're a proponent of uniform initialization yes. If you're not, you can stick with the old style. Note that the other answer talks about std::initializer_list but this doesn't apply to your question whatsoever, since you have no constructor which takes a std::initializer_list. Braced-init-lists and std::initializer_list are separate concepts. It's best not to get them confused this early on.