Mercurial > hg > vamp-build-and-test
diff DEPENDENCIES/generic/include/boost/spirit/home/karma/detail/unused_delimiter.hpp @ 16:2665513ce2d3
Add boost headers
author | Chris Cannam |
---|---|
date | Tue, 05 Aug 2014 11:11:38 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DEPENDENCIES/generic/include/boost/spirit/home/karma/detail/unused_delimiter.hpp Tue Aug 05 11:11:38 2014 +0100 @@ -0,0 +1,51 @@ +// Copyright (c) 2001-2011 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(BOOST_SPIRIT_KARMA_UNUSED_DELIMITER_MAR_15_2009_0923PM) +#define BOOST_SPIRIT_KARMA_UNUSED_DELIMITER_MAR_15_2009_0923PM + +#if defined(_MSC_VER) +#pragma once +#endif + +#include <boost/spirit/home/support/unused.hpp> + +namespace boost { namespace spirit { namespace karma { namespace detail +{ + template <typename Delimiter> + struct unused_delimiter : unused_type + { + unused_delimiter(Delimiter const& delim) + : delimiter(delim) {} + Delimiter const& delimiter; + + private: + // silence MSVC warning C4512: assignment operator could not be generated + unused_delimiter& operator= (unused_delimiter const&); + }; + + // If a surrounding verbatim[] directive was specified, the current + // delimiter is of the type unused_delimiter. In this case we + // re-activate the delimiter which was active before the verbatim[] + // directive. + template <typename Delimiter, typename Default> + inline Delimiter const& + get_delimiter(unused_delimiter<Delimiter> const& u, Default const&) + { + return u.delimiter; + } + + // If no surrounding verbatim[] directive was specified we activate + // a single space as the delimiter to use. + template <typename Delimiter, typename Default> + inline Default const& + get_delimiter(Delimiter const&, Default const& d) + { + return d; + } + +}}}} + +#endif