Parola chiave esplicita sul costruttore multi-arg?

Recentemente mi sono imbattuto in una class strana che aveva tre costruttori:

class Class { public: explicit Class(int ); Class(AnotherClass ); explicit Class(YetAnotherClass, AnotherClass ); // ... } 

Questo non ha davvero senso per me – ho pensato che la parola chiave esplicita è quella di proteggere la costruzione scelta dal compilatore da un tipo straniero.

È permesso? Se è così, cosa significa?

In C ++ 11 i costruttori multiparametrici possono essere convertiti implicitamente con l’inizializzazione delle parentesi.

Tuttavia, prima di C ++ 11 explicit si applicava solo ai costruttori a argomento singolo. Per i costruttori a più argomenti, è stato ignorato e non ha avuto alcun effetto .