CHECK_CXX_SOURCE_COMPILES(
"
#include <exception>
#include <iostream>
#include <cxxabi.h>
#include <cstdlib>
struct empty { };
template <typename T, int N>
struct bar { };
int status;
char *realname;
int main()
{
// exception classes not in <stdexcept>, thrown by the implementation
// instead of the user
std::bad_exception e;
realname = abi::__cxa_demangle(e.what(), 0, 0, &status);
free(realname);
// typeid
bar<empty,17> u;
const std::type_info &ti = typeid(u);
realname = abi::__cxa_demangle(ti.name(), 0, 0, &status);
free(realname);
return 0;
}
"
DEAL_II_HAVE_LIBSTDCXX_DEMANGLER)