// common_type
-#include <type_traits>
+#include <functional>
#include <memory>
+#include <type_traits>
#include "test_macros.h"
template <> struct common_type< ::S<long>, long> {};
template <> struct common_type<long, ::S<long> > {};
- template <> struct common_type< ::X<float> > {};
template <> struct common_type< ::X<double>, ::X<double> > {};
}
static_assert(std::is_same<CommonType<int volatile[]>, int volatile*>::value, "");
static_assert(std::is_same<CommonType<void(&)()>, void(*)()>::value, "");
- static_assert(no_common_type<X<float> >::value, "");
static_assert(no_common_type<X<double> >::value, "");
}