libcarla/include/system/boost/metaparse/v1/is_error.hpp
2024-10-18 13:19:59 +08:00

44 lines
919 B
C++

#ifndef BOOST_METAPARSE_V1_IS_ERROR_HPP
#define BOOST_METAPARSE_V1_IS_ERROR_HPP
// Copyright Abel Sinkovics (abel@sinkovics.hu) 2011.
// 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 <boost/metaparse/v1/fail_tag.hpp>
#include <boost/mpl/tag.hpp>
#include <boost/mpl/vector.hpp>
#include <boost/type_traits/is_same.hpp>
namespace boost
{
namespace metaparse
{
namespace v1
{
template <class T = boost::mpl::na>
struct is_error :
boost::is_same<
fail_tag,
typename boost::mpl::tag<typename T::type>::type
>
{};
template <>
struct is_error<boost::mpl::na>
{
typedef is_error type;
template <class T = boost::mpl::na>
struct apply : is_error<T> {};
};
}
}
}
#endif