Stephan,

Great video. I am having a problem with uniform initialization. When I try to call an explicit constructor with uniform initialization, I get the following error.

 

error C2440: 'initializing' : cannot convert from 'initializer-list' to 'S'

 

Below is s small example

 


struct S{

    explicit S(int){}

};


int main(){

    S s{10};
}

 

I originally got this error when using the brace initialization with ifstream which has a explicit constructor.

 

The error resolves with either using parentheses instead of braces, or making the constructor not explicit.

 

Is this a compiler bug, or is there something I am not understanding about uniform initialization