Skip to content

standard_wide::bool_ parser does not work with standard_wide string #10

Description

@drocheam

It seems the bool parser is not working with wchar_t although being included in the x3::standard_wide namespace.

Minimal Example:

#include <string>
#include <boost/spirit/home/x3.hpp>


int main()
{
	namespace x3 = boost::spirit::x3;

	std::wstring test = L"true";
	bool res = 0;

	x3::phrase_parse(test.begin(), test.end(), x3::standard_wide::bool_, x3::standard_wide::space, res);

	return 0;
}

Compiled With:
g++ -I -lboost main.cpp

On Manjaro Linux 21.2 and boost 1.76

Error (condensed):

/usr/include/boost/spirit/home/x3/string/detail/string_parse.hpp:24:38: error: no match for call to ‘(const boost::spirit::x3::case_compare<boost::spirit::char_encoding::standard_wide>) (char&, wchar_t&)’
   24 |             if (i == last || (compare(ch, *i) != 0))
      |                               ~~~~~~~^~~~~~~~

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestwontfix-X3This will not be fixed for X3

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions