Incorrect(?) compile time error - inheriting member function template (using base::f; )

Is this compile time error correct?

g++ 4.6.3 compiles fine

Here is the code:

$ clang++ --version
clang version 3.1 (trunk 155038)
Target: i386-pc-linux-gnu
Thread model: posix
$ clang++ -std=c++11 clang_error.cpp 
clang_error.cpp:55:18: error: no matching member function for call to 'get'
        std::cout << ov.get<double>() << std::endl;
clang_error.cpp:43:2: note: candidate template ignored: substitution failure
[with T2 = double]
1 error generated.

Thanks and Regards,

As noted in the corresponding bug report (, Clang is correct to reject this code.

  • Doug

Thanks Doug,

I have seen the response and the paragraph in the standard.
Now that I think, it is quite logical.

Sorry for the bug report before talking.

I’m reporting it to where it belongs (GCC).

Thanks and regards,