noexcept
1234567891011121314151617181920
#include <type_traits> #include <memory> #include <iterator> #include <utility> #include <sstream> namespace chesspp { inline namespace util_ops { template<typename T, typename U> auto operator!=(T const &t, U const &u) noexcept(noexcept(!(t == u))) -> typename std::enable_if<std::is_base_of<T, U>::value || std::is_base_of<U, T>::value, decltype(!(t == u))>::type { return !(t == u); } } }
123
noexcept(noexcept(!(t == u))) -> typename std::enable_if<std::is_base_of<T, U>::value || std::is_base_of<U, T>::value, decltype(!(t == u))>::type