Regarding the following, are there any reasons to do one over the other or are they roughly equivalent?
class Something { int m_a = 0; };
v
The first form is new to C++11 and so at this point isn't terribly well supported, especially if you need to support a variety of older compilers.
Otherwise they should be roughly equivalent when a C++11 compiler is available.