Acabo de tropezar, por la misma pregunta. En mi caso, estoy usando VS2010.
Está claro que VS2010 nunca se actualizará para implementar completamente C++ 11, use VS2015 si necesita un mejor cumplimiento del estándar (lo cual hago cuando puedo). Pero para algunos proyectos (heredados), todavía tengo que usar VS2010.
Un enfoque que funciona en muchos casos (para mí) es el uso de una función privada con todos los códigos de inicialización compartidos en ella. Ejemplo:
class A
{
private:
void Inidialise() { /* common initialisation here */ }
public:
A() { Initialise(); /* specific initialisation for A() here */ }
A(bool a) { Initialise(); /* specific initialisation for A(bool) here */ }
A(int b) { Initialise(); /* specific initialisation for A(int) here */ }
/* etcetera */
}
No resuelve todos los problemas '' y que no previene todos los casos de código duplicado y sale un largo camino.
C++ 0x admitirá esto, en realidad – sellibitze