mirror of
https://github.com/vdemydiuk/mtapi.git
synced 2026-08-21 14:48:25 +00:00
Added thirdparty: boost library
This commit is contained in:
+73
@@ -0,0 +1,73 @@
|
||||
/*=============================================================================
|
||||
Copyright (c) 2001-2011 Joel de Guzman
|
||||
|
||||
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)
|
||||
=============================================================================*/
|
||||
#ifndef BOOST_SPIRIT_QI_DETAIL_PASS_FUNCTION_HPP
|
||||
#define BOOST_SPIRIT_QI_DETAIL_PASS_FUNCTION_HPP
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#include <boost/spirit/home/support/unused.hpp>
|
||||
#include <boost/optional.hpp>
|
||||
|
||||
namespace boost { namespace spirit { namespace qi { namespace detail
|
||||
{
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(push)
|
||||
# pragma warning(disable: 4512) // assignment operator could not be generated.
|
||||
#endif
|
||||
template <typename Iterator, typename Context, typename Skipper>
|
||||
struct pass_function
|
||||
{
|
||||
pass_function(
|
||||
Iterator& first_, Iterator const& last_
|
||||
, Context& context_, Skipper const& skipper_)
|
||||
: first(first_)
|
||||
, last(last_)
|
||||
, context(context_)
|
||||
, skipper(skipper_)
|
||||
{
|
||||
}
|
||||
|
||||
template <typename Component, typename Attribute>
|
||||
bool operator()(Component const& component, Attribute& attr)
|
||||
{
|
||||
// return true if the parser succeeds
|
||||
return component.parse(first, last, context, skipper, attr);
|
||||
}
|
||||
|
||||
template <typename Component, typename Attribute>
|
||||
bool operator()(Component const& component, boost::optional<Attribute>& attr)
|
||||
{
|
||||
// return true if the parser succeeds
|
||||
Attribute val;
|
||||
if (component.parse(first, last, context, skipper, val))
|
||||
{
|
||||
attr = val;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
template <typename Component>
|
||||
bool operator()(Component const& component)
|
||||
{
|
||||
// return true if the parser succeeds
|
||||
return component.parse(first, last, context, skipper, unused);
|
||||
}
|
||||
|
||||
Iterator& first;
|
||||
Iterator const& last;
|
||||
Context& context;
|
||||
Skipper const& skipper;
|
||||
};
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(pop)
|
||||
#endif
|
||||
}}}}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user