// Copyright (c) 2018 Emil Dotchevski // Copyright (c) 2018 Second Spectrum, Inc. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) #include #include template struct result_type { T value() const; E error() const; }; struct not_result_type1 { int value() const; }; struct not_result_type2 { int error() const; }; namespace leaf = boost::leaf; using namespace leaf::leaf_detail; static_assert(is_result_type>::value, ""); static_assert(std::is_same>::value_type>::value, ""); static_assert(std::is_same>::error_type>::value, ""); static_assert(is_result_type>::value, ""); static_assert(std::is_same>::value_type>::value, ""); static_assert(std::is_same>::error_type>::value, ""); static_assert(is_result_type>::value, ""); static_assert(std::is_same>::value_type>::value, ""); static_assert(std::is_same>::error_type>::value, ""); static_assert(is_result_type>::value, ""); static_assert(std::is_same>::value_type>::value, ""); static_assert(std::is_same>::error_type>::value, ""); static_assert(!is_result_type>::value, ""); static_assert(!is_result_type::value, ""); static_assert(!is_result_type::value, ""); int main() { return 0; }