Well, even if your compiler is compatible with C ++ 14, your standard library is not :)
C ++ 11 has:
explicit forward_list( const Allocator& alloc = Allocator() );
whereas C ++ 14 has (with the DR2193 library ):
forward_list() : forward_list( Allocator() ) {} explicit forward_list( const Allocator& alloc );
If you change the default constructor of A to explicit A(char* = nullptr) , you will see the same behavior.
source share