Consider the following code:
template <typename T>
class Foo
{};
template <typename T, typename U>
class Foo<T(*)(U* const)>
{};
template <typename T, typename U>
class Foo<T(*)(U*)>
{};
When I try to compile it (ideone) , it does not tell me that the two sample specializations are identical. This is surprising, since usually U*both U* constare different things (the second is a const pointer). What is wrong here?
source
share