annotate DEPENDENCIES/generic/include/boost/spirit/home/karma/detail/string_compare.hpp @ 118:770eb830ec19 emscripten

Typo fix
author Chris Cannam
date Wed, 18 May 2016 16:14:08 +0100
parents 2665513ce2d3
children
rev   line source
Chris@16 1 // Copyright (c) 2001-2011 Hartmut Kaiser
Chris@16 2 //
Chris@16 3 // Distributed under the Boost Software License, Version 1.0. (See accompanying
Chris@16 4 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Chris@16 5
Chris@16 6 #if !defined(BOOST_SPIRIT_KARMA_STRING_COMPARE_AUG_08_2009_0756PM)
Chris@16 7 #define BOOST_SPIRIT_KARMA_STRING_COMPARE_AUG_08_2009_0756PM
Chris@16 8
Chris@16 9 #if defined(_MSC_VER)
Chris@16 10 #pragma once
Chris@16 11 #endif
Chris@16 12
Chris@16 13 #include <string>
Chris@16 14 #include <boost/spirit/home/support/char_class.hpp>
Chris@16 15 #include <boost/spirit/home/karma/detail/generate_to.hpp>
Chris@16 16 #include <boost/range/iterator_range.hpp>
Chris@16 17
Chris@16 18 namespace boost { namespace spirit { namespace karma { namespace detail
Chris@16 19 {
Chris@16 20 template <typename Char>
Chris@16 21 bool string_compare(Char const* attr, Char const* lit)
Chris@16 22 {
Chris@16 23 Char ch_attr = *attr;
Chris@16 24 Char ch_lit = *lit;
Chris@16 25
Chris@16 26 while (!!ch_lit && !!ch_attr)
Chris@16 27 {
Chris@16 28 if (ch_attr != ch_lit)
Chris@16 29 return false;
Chris@16 30
Chris@16 31 ch_attr = *++attr;
Chris@16 32 ch_lit = *++lit;
Chris@16 33 }
Chris@16 34
Chris@16 35 return !ch_lit && !ch_attr;
Chris@16 36 }
Chris@16 37
Chris@16 38 template <typename Char>
Chris@16 39 bool string_compare(Char const* attr, Char const* lit, unused_type, unused_type)
Chris@16 40 {
Chris@16 41 return string_compare(attr, lit);
Chris@16 42 }
Chris@16 43
Chris@16 44 template <typename Char>
Chris@16 45 bool string_compare(unused_type, Char const*, unused_type, unused_type)
Chris@16 46 {
Chris@16 47 return true;
Chris@16 48 }
Chris@16 49
Chris@16 50 template <typename Char, typename CharEncoding, typename Tag>
Chris@16 51 bool string_compare(Char const* attr, Char const* lit, CharEncoding, Tag)
Chris@16 52 {
Chris@16 53 Char ch_attr = *attr;
Chris@16 54 Char ch_lit = spirit::char_class::convert<CharEncoding>::to(Tag(), *lit);
Chris@16 55
Chris@16 56 while (!!ch_lit && !!ch_attr)
Chris@16 57 {
Chris@16 58 if (ch_attr != ch_lit)
Chris@16 59 return false;
Chris@16 60
Chris@16 61 ch_attr = *++attr;
Chris@16 62 ch_lit = spirit::char_class::convert<CharEncoding>::to(Tag(), *++lit);
Chris@16 63 }
Chris@16 64
Chris@16 65 return !ch_lit && !ch_attr;
Chris@16 66 }
Chris@16 67
Chris@16 68 template <typename Char, typename CharEncoding, typename Tag>
Chris@16 69 bool string_compare(unused_type, Char const*, CharEncoding, Tag)
Chris@16 70 {
Chris@16 71 return true;
Chris@16 72 }
Chris@16 73
Chris@16 74 }}}}
Chris@16 75
Chris@16 76 #endif