We see that our code doesn't compile with the new 12.5 with C++11 enabled. The code below does compile with gcc but not with suncc 12.5 with -std=c++11. The example is coming from the GCC bugzilla, see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=50732 Is this a bug in the compiler?
#include <iostream>
#include <type_traits>
template <typename T>
struct non_instantiatable
{
typedef typename T::THIS_TYPE_CANNOT_BE_INSTANTIATED type;
};
int main (int argc, char* argv[])
{
std::cout << std::is_base_of<non_instantiatable<int>, void>::value << std::endl;
return 0;
}