Inizializzazione delle variabili membro utilizzando lo stesso nome per gli argomenti del costruttore come per le variabili membro consentite dallo standard C ++?

Ho capito che è ansible inizializzare le variabili membro con un argomento costruttore dello stesso nome mostrato nell’esempio seguente.

#include  #include  class Blah { std::vector vec; public: Blah(std::vector vec): vec(vec) {} void printVec() { for(unsigned int i=0; i<vec.size(); i++) printf("%i ", vec.at(i)); printf("\n"); } }; int main() { std::vector myVector(3); myVector.at(0) = 1; myVector.at(1) = 2; myVector.at(2) = 3; Blah blah(myVector); blah.printVec(); return 0; } 

g ++ 4.4 con gli argomenti -Wall -Wextra -pedantic non dà avvisi e funziona correttamente. Funziona anche con clang ++. Mi chiedo che cosa dice lo standard C ++ a riguardo? È legale e garantito di funzionare sempre?