/* Copyright Barrett Adair 2016-2017 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE.md or copy at http ://boost.org/LICENSE_1_0.txt) */ #include #include #include #include #include "test.hpp" struct foo{}; int main() { { using f = int(foo::*)(int); using l = int(foo::*)(int) LREF; using r = int(foo::*)(int) RREF; using c = int(foo::*)(int) const; using cl = int(foo::*)(int) const LREF; using cr = int(foo::*)(int) const RREF; using v = int(foo::*)(int) volatile; using vl = int(foo::*)(int) volatile LREF; using vr = int(foo::*)(int) volatile RREF; using cv = int(foo::*)(int) const volatile; using cvl = int(foo::*)(int) const volatile LREF; using cvr = int(foo::*)(int) const volatile RREF; CT_ASSERT(std::is_same{}); CT_ASSERT(std::is_same{}); CT_ASSERT(std::is_same{}); CT_ASSERT(std::is_same{}); CT_ASSERT(std::is_same{}); CT_ASSERT(std::is_same{}); CT_ASSERT(std::is_same{}); CT_ASSERT(std::is_same{}); CT_ASSERT(std::is_same{}); CT_ASSERT(std::is_same{}); CT_ASSERT(std::is_same{}); CT_ASSERT(std::is_same{}); } #ifndef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS { using f = foo(); using l = foo() LREF; using r = foo() RREF; using c = foo() const; using cl = foo() const LREF; using cr = foo() const RREF; using v = foo() volatile; using vl = foo() volatile LREF; using vr = foo() volatile RREF; using cv = foo() const volatile; using cvl = foo() const volatile LREF; using cvr = foo() const volatile RREF; CT_ASSERT(std::is_same{}); CT_ASSERT(std::is_same{}); CT_ASSERT(std::is_same{}); CT_ASSERT(std::is_same{}); CT_ASSERT(std::is_same{}); CT_ASSERT(std::is_same{}); CT_ASSERT(std::is_same{}); CT_ASSERT(std::is_same{}); CT_ASSERT(std::is_same{}); CT_ASSERT(std::is_same{}); CT_ASSERT(std::is_same{}); CT_ASSERT(std::is_same{}); } #endif }