Mixing in-class initialization and initializer lists
Well, the first example is bad for a simple reason: It contains code which is never used, as none of the in-class-initializers are used by any constructor.

The second one is fine, using in-class-initializers for any initializations multiple constructors share (you don't even have to decide between multiple choices).
One can argue about extracting the constant initializers for the other three members out of the single constructor having one for each respective one, but that's debatable.

There's only one more criticism of your code:
The last single-line-comment is too long, you should have split it.