// Copyright (c) 2001-2010 Hartmut Kaiser // // 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) #if !defined(SPIRIT_STRICT_RELAXED_APR_22_2010_0959AM) #define SPIRIT_STRICT_RELAXED_APR_22_2010_0959AM #if defined(_MSC_VER) #pragma once #endif #include #include #include #include namespace boost { namespace spirit { /////////////////////////////////////////////////////////////////////////// // Enablers /////////////////////////////////////////////////////////////////////////// template <> struct use_directive // enables strict[] : mpl::true_ {}; template <> struct use_directive // enables relaxed[] : mpl::true_ {}; /////////////////////////////////////////////////////////////////////////// template <> struct is_modifier_directive : mpl::true_ {}; template <> struct is_modifier_directive : mpl::true_ {}; /////////////////////////////////////////////////////////////////////////// // Don't add tag::strict or tag::relaxed if there is already one of those // in the modifier list template struct compound_modifier >::type> : Current { compound_modifier() : Current() {} compound_modifier(Current const& current, tag::strict const&) : Current(current) {} }; template struct compound_modifier >::type> : Current { compound_modifier() : Current() {} compound_modifier(Current const& current, tag::relaxed const&) : Current(current) {} }; namespace karma { using boost::spirit::strict; using boost::spirit::strict_type; using boost::spirit::relaxed; using boost::spirit::relaxed_type; } }} #endif