Comments (3)
I'm not sure if it has something to do with c++
version/std because when checking it with g++-13
with -std=c++23
the I get this:
gcc-13-env g++ -std=c++23 ctpg/examples/ctjs.cpp -fsyntax-only -Ictpg/examples/../include
In file included from ctpg/examples/ctjs.cpp:5:
ctpg/examples/../include/ctpg/ctpg.hpp: In instantiation of ‘constexpr void ctpg::parser<ctpg::nterm<ValueType>, std::tuple<_UTypes ...>, std::tuple<_Tp ...>, std::tuple<R ...>, LexerUsage, Limits>::state_analyzer::transitions(ctpg::size16_t, ctpg::size16_t, const situation_vector&) [with RootValueType = ctpg::utils::slice; Terms = {ctpg::custom_term<ctpg::regex::regex_parser::<lambda(auto:50)> >, ctpg::custom_term<ctpg::regex::char_subset (*)(std::basic_string_view<char, std::char_traits<char> >)>, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term}; NTerms = {ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<unsigned int>}; Rules = {ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<unsigned int>, ctpg::custom_term<ctpg::regex::regex_parser::<lambda(auto:50)> > >, ctpg::detail::rule<false, ctpg::regex::regex_parser::<lambda(ctpg::size32_t, ctpg::size32_t)>, ctpg::nterm<unsigned int>, ctpg::nterm<unsigned int>, ctpg::custom_term<ctpg::regex::regex_parser::<lambda(auto:50)> > >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:51&, ctpg::size32_t)>, ctpg::nterm<ctpg::utils::slice>, ctpg::custom_term<ctpg::regex::regex_parser::<lambda(auto:50)> > >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:52&, const auto:53&)>, ctpg::nterm<ctpg::utils::slice>, ctpg::custom_term<ctpg::regex::char_subset (*)(std::basic_string_view<char, std::char_traits<char> >)> >, ctpg::detail::rule<false, ctpg::ftors::element<2, std::integer_sequence<long unsigned int, 0> >, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term>, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:54&, ctpg::regex::regex_parser::slice, ctpg::skip)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term>, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:55&, ctpg::regex::regex_parser::slice, ctpg::skip)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term>, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:56&, ctpg::regex::regex_parser::slice, ctpg::skip)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term>, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:57&, ctpg::regex::regex_parser::slice, ctpg::skip, ctpg::size32_t, ctpg::skip)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term, ctpg::nterm<unsigned int>, ctpg::char_term>, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:58&, ctpg::regex::regex_parser::slice, ctpg::regex::regex_parser::slice)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:59&, ctpg::regex::regex_parser::slice, ctpg::skip, ctpg::regex::regex_parser::slice)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> >}; LexerUsage = ctpg::use_lexer<ctpg::regex::regex_lexer>; Limits = ctpg::default_limits; ctpg::size16_t = short unsigned int; situation_vector = ctpg::stdex::cvector<unsigned int, 506, void>]’:
ctpg/examples/../include/ctpg/ctpg.hpp:2223:32: required from here
ctpg/examples/../include/ctpg/ctpg.hpp:3366:9: in ‘constexpr’ expansion of ‘((ctpg::parser<ctpg::nterm<ctpg::utils::slice>, std::tuple<ctpg::custom_term<ctpg::regex::regex_parser::<lambda(auto:50)> >, ctpg::custom_term<ctpg::regex::char_subset (*)(std::basic_string_view<char, std::char_traits<char> >)>, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term>, std::tuple<ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<unsigned int> >, std::tuple<ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<unsigned int>, ctpg::custom_term<ctpg::regex::regex_parser::<lambda(auto:50)> > >, ctpg::detail::rule<false, ctpg::regex::regex_parser::<lambda(ctpg::size32_t, ctpg::size32_t)>, ctpg::nterm<unsigned int>, ctpg::nterm<unsigned int>, ctpg::custom_term<ctpg::regex::regex_parser::<lambda(auto:50)> > >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:51&, ctpg::size32_t)>, ctpg::nterm<ctpg::utils::slice>, ctpg::custom_term<ctpg::regex::regex_parser::<lambda(auto:50)> > >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:52&, const auto:53&)>, ctpg::nterm<ctpg::utils::slice>, ctpg::custom_term<ctpg::regex::char_subset (*)(std::basic_string_view<char, std::char_traits<char> >)> >, ctpg::detail::rule<false, ctpg::ftors::element<2, std::integer_sequence<long unsigned int, 0> >, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term>, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:54&, ctpg::regex::regex_parser::slice, ctpg::skip)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term>, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:55&, ctpg::regex::regex_parser::slice, ctpg::skip)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term>, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:56&, ctpg::regex::regex_parser::slice, ctpg::skip)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term>, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:57&, ctpg::regex::regex_parser::slice, ctpg::skip, ctpg::size32_t, ctpg::skip)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term, ctpg::nterm<unsigned int>, ctpg::char_term>, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:58&, ctpg::regex::regex_parser::slice, ctpg::regex::regex_parser::slice)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:59&, ctpg::regex::regex_parser::slice, ctpg::skip, ctpg::regex::regex_parser::slice)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> > >, ctpg::use_lexer<ctpg::regex::regex_lexer>, ctpg::default_limits>*)(& ctpg::regex::regex_parser::regex_parser_object))->ctpg::parser<ctpg::nterm<ctpg::utils::slice>, std::tuple<ctpg::custom_term<ctpg::regex::regex_parser::<lambda(auto:50)> >, ctpg::custom_term<ctpg::regex::char_subset (*)(std::basic_string_view<char, std::char_traits<char> >)>, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term>, std::tuple<ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<unsigned int> >, std::tuple<ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<unsigned int>, ctpg::custom_term<ctpg::regex::regex_parser::<lambda(auto:50)> > >, ctpg::detail::rule<false, ctpg::regex::regex_parser::<lambda(ctpg::size32_t, ctpg::size32_t)>, ctpg::nterm<unsigned int>, ctpg::nterm<unsigned int>, ctpg::custom_term<ctpg::regex::regex_parser::<lambda(auto:50)> > >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:51&, ctpg::size32_t)>, ctpg::nterm<ctpg::utils::slice>, ctpg::custom_term<ctpg::regex::regex_parser::<lambda(auto:50)> > >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:52&, const auto:53&)>, ctpg::nterm<ctpg::utils::slice>, ctpg::custom_term<ctpg::regex::char_subset (*)(std::basic_string_view<char, std::char_traits<char> >)> >, ctpg::detail::rule<false, ctpg::ftors::element<2, std::integer_sequence<long unsigned int, 0> >, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term>, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:54&, ctpg::regex::regex_parser::slice, ctpg::skip)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term>, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:55&, ctpg::regex::regex_parser::slice, ctpg::skip)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term>, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:56&, ctpg::regex::regex_parser::slice, ctpg::skip)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term>, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:57&, ctpg::regex::regex_parser::slice, ctpg::skip, ctpg::size32_t, ctpg::skip)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term, ctpg::nterm<unsigned int>, ctpg::char_term>, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:58&, ctpg::regex::regex_parser::slice, ctpg::regex::regex_parser::slice)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:59&, ctpg::regex::regex_parser::slice, ctpg::skip, ctpg::regex::regex_parser::slice)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> > >, ctpg::use_lexer<ctpg::regex::regex_lexer>, ctpg::default_limits>::parser(ctpg::regex::regex_parser::expr, ctpg::terms(const Terms& ...) [with Terms = {custom_term<regex::regex_parser::<lambda(auto:50)> >, custom_term<regex::char_subset (*)(std::basic_string_view<char, std::char_traits<char> >)>, char, char, char, char, char, char, char, char}](ctpg::regex::regex_parser::regex_primary, '*', '+', '?', '|', '(', ')', '{', '}'), ctpg::nterms(NTerms ...) [with NTerms = {nterm<utils::slice>, nterm<utils::slice>, nterm<utils::slice>, nterm<utils::slice>, nterm<utils::slice>, nterm<unsigned int>}](ctpg::regex::regex_parser::alt, ctpg::regex::regex_parser::concat, ctpg::regex::regex_parser::q_expr, ctpg::regex::regex_parser::primary, ctpg::regex::regex_parser::number), ctpg::rules(Rules&& ...) [with Rules = {detail::rule<false, std::nullptr_t, nterm<unsigned int>, custom_term<regex::regex_parser::<lambda(auto:50)> > >, detail::rule<false, regex::regex_parser::<lambda(size32_t, size32_t)>, nterm<unsigned int>, nterm<unsigned int>, custom_term<regex::regex_parser::<lambda(auto:50)> > >, detail::rule<true, regex::regex_parser::<lambda(auto:51&, size32_t)>, nterm<utils::slice>, custom_term<regex::regex_parser::<lambda(auto:50)> > >, detail::rule<true, regex::regex_parser::<lambda(auto:52&, const auto:53&)>, nterm<utils::slice>, custom_term<regex::char_subset (*)(std::basic_string_view<char, std::char_traits<char> >)> >, detail::rule<false, ftors::element<2, std::integer_sequence<long unsigned int, 0> >, nterm<utils::slice>, char_term, nterm<utils::slice>, char_term>, detail::rule<false, std::nullptr_t, nterm<utils::slice>, nterm<utils::slice> >, detail::rule<true, regex::regex_parser::<lambda(auto:54&, regex::regex_parser::slice, skip)>, nterm<utils::slice>, nterm<utils::slice>, char_term>, detail::rule<true, regex::regex_parser::<lambda(auto:55&, regex::regex_parser::slice, skip)>, nterm<utils::slice>, nterm<utils::slice>, char_term>, detail::rule<true, regex::regex_parser::<lambda(auto:56&, regex::regex_parser::slice, skip)>, nterm<utils::slice>, nterm<utils::slice>, char_term>, detail::rule<true, regex::regex_parser::<lambda(auto:57&, regex::regex_parser::slice, skip, size32_t, skip)>, nterm<utils::slice>, nterm<utils::slice>, char_term, nterm<unsigned int>, char_term>, detail::rule<false, std::nullptr_t, nterm<utils::slice>, nterm<utils::slice> >, detail::rule<true, regex::regex_parser::<lambda(auto:58&, regex::regex_parser::slice, regex::regex_parser::slice)>, nterm<utils::slice>, nterm<utils::slice>, nterm<utils::slice> >, detail::rule<false, std::nullptr_t, nterm<utils::slice>, nterm<utils::slice> >, detail::rule<true, regex::regex_parser::<lambda(auto:59&, regex::regex_parser::slice, skip, regex::regex_parser::slice)>, nterm<utils::slice>, nterm<utils::slice>, char_term, nterm<utils::slice> >, detail::rule<false, std::nullptr_t, nterm<utils::slice>, nterm<utils::slice> >}](ctpg::detail::rule<RequiresContext, F, L, R>::operator>=(F1&&) [with F1 = ctpg::regex::regex_parser::<lambda(ctpg::size32_t, ctpg::size32_t)>; bool RequiresContext = false; F = std::nullptr_t; L = ctpg::nterm<unsigned int>; R = {ctpg::nterm<unsigned int>, ctpg::custom_term<ctpg::regex::regex_parser::<lambda(auto:50)> >}](<lambda closure object>ctpg::regex::regex_parser::<lambda(ctpg::size32_t, ctpg::size32_t)>()), ctpg::detail::rule<RequiresContext, F, L, R>::operator>>=(F1&&) [with F1 = ctpg::regex::regex_parser::<lambda(auto:51&, ctpg::size32_t)>; bool RequiresContext = false; F = std::nullptr_t; L = ctpg::nterm<ctpg::utils::slice>; R = {ctpg::custom_term<ctpg::regex::regex_parser::<lambda(auto:50)> >}](<lambda closure object>ctpg::regex::regex_parser::<lambda(auto:51&, ctpg::size32_t)>()), ctpg::detail::rule<RequiresContext, F, L, R>::operator>>=(F1&&) [with F1 = ctpg::regex::regex_parser::<lambda(auto:52&, const auto:53&)>; bool RequiresContext = false; F = std::nullptr_t; L = ctpg::nterm<ctpg::utils::slice>; R = {ctpg::custom_term<ctpg::regex::char_subset (*)(std::basic_string_view<char, std::char_traits<char> >)>}](<lambda closure object>ctpg::regex::regex_parser::<lambda(auto:52&, const auto:53&)>()), ctpg::detail::rule<RequiresContext, F, L, R>::operator>=(F1&&) [with F1 = const ctpg::ftors::element<2>&; bool RequiresContext = false; F = std::nullptr_t; L = ctpg::nterm<ctpg::utils::slice>; R = {ctpg::char_term, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term}](ctpg::ftors::_e2), ctpg::nterm<ValueType>::operator()(Args&& ...) const [with Args = {const ctpg::nterm<ctpg::utils::slice>&}; ValueType = ctpg::utils::slice](ctpg::regex::regex_parser::primary), ctpg::detail::rule<RequiresContext, F, L, R>::operator>>=(F1&&) [with F1 = ctpg::regex::regex_parser::<lambda(auto:54&, ctpg::regex::regex_parser::slice, ctpg::skip)>; bool RequiresContext = false; F = std::nullptr_t; L = ctpg::nterm<ctpg::utils::slice>; R = {ctpg::nterm<ctpg::utils::slice>, ctpg::char_term}](<lambda closure object>ctpg::regex::regex_parser::<lambda(auto:54&, ctpg::regex::regex_parser::slice, ctpg::skip)>()), ctpg::detail::rule<RequiresContext, F, L, R>::operator>>=(F1&&) [with F1 = ctpg::regex::regex_parser::<lambda(auto:55&, ctpg::regex::regex_parser::slice, ctpg::skip)>; bool RequiresContext = false; F = std::nullptr_t; L = ctpg::nterm<ctpg::utils::slice>; R = {ctpg::nterm<ctpg::utils::slice>, ctpg::char_term}](<lambda closure object>ctpg::regex::regex_parser::<lambda(auto:55&, ctpg::regex::regex_parser::slice, ctpg::skip)>()), ctpg::detail::rule<RequiresContext, F, L, R>::operator>>=(F1&&) [with F1 = ctpg::regex::regex_parser::<lambda(auto:56&, ctpg::regex::regex_parser::slice, ctpg::skip)>; bool RequiresContext = false; F = std::nullptr_t; L = ctpg::nterm<ctpg::utils::slice>; R = {ctpg::nterm<ctpg::utils::slice>, ctpg::char_term}](<lambda closure object>ctpg::regex::regex_parser::<lambda(auto:56&, ctpg::regex::regex_parser::slice, ctpg::skip)>()), ctpg::detail::rule<RequiresContext, F, L, R>::operator>>=(F1&&) [with F1 = ctpg::regex::regex_parser::<lambda(auto:57&, ctpg::regex::regex_parser::slice, ctpg::skip, ctpg::size32_t, ctpg::skip)>; bool RequiresContext = false; F = std::nullptr_t; L = ctpg::nterm<ctpg::utils::slice>; R = {ctpg::nterm<ctpg::utils::slice>, ctpg::char_term, ctpg::nterm<unsigned int>, ctpg::char_term}](<lambda closure object>ctpg::regex::regex_parser::<lambda(auto:57&, ctpg::regex::regex_parser::slice, ctpg::skip, ctpg::size32_t, ctpg::skip)>()), ctpg::nterm<ValueType>::operator()(Args&& ...) const [with Args = {const ctpg::nterm<ctpg::utils::slice>&}; ValueType = ctpg::utils::slice](ctpg::regex::regex_parser::q_expr), ctpg::detail::rule<RequiresContext, F, L, R>::operator>>=(F1&&) [with F1 = ctpg::regex::regex_parser::<lambda(auto:58&, ctpg::regex::regex_parser::slice, ctpg::regex::regex_parser::slice)>; bool RequiresContext = false; F = std::nullptr_t; L = ctpg::nterm<ctpg::utils::slice>; R = {ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>}](<lambda closure object>ctpg::regex::regex_parser::<lambda(auto:58&, ctpg::regex::regex_parser::slice, ctpg::regex::regex_parser::slice)>()), ctpg::nterm<ValueType>::operator()(Args&& ...) const [with Args = {const ctpg::nterm<ctpg::utils::slice>&}; ValueType = ctpg::utils::slice](ctpg::regex::regex_parser::concat), ctpg::detail::rule<RequiresContext, F, L, R>::operator>>=(F1&&) [with F1 = ctpg::regex::regex_parser::<lambda(auto:59&, ctpg::regex::regex_parser::slice, ctpg::skip, ctpg::regex::regex_parser::slice)>; bool RequiresContext = false; F = std::nullptr_t; L = ctpg::nterm<ctpg::utils::slice>; R = {ctpg::nterm<ctpg::utils::slice>, ctpg::char_term, ctpg::nterm<ctpg::utils::slice>}](<lambda closure object>ctpg::regex::regex_parser::<lambda(auto:59&, ctpg::regex::regex_parser::slice, ctpg::skip, ctpg::regex::regex_parser::slice)>()), ctpg::nterm<ValueType>::operator()(Args&& ...) const [with Args = {const ctpg::nterm<ctpg::utils::slice>&}; ValueType = ctpg::utils::slice](ctpg::regex::regex_parser::alt)), (ctpg::use_lexer<ctpg::regex::regex_lexer>(), ctpg::use_lexer<ctpg::regex::regex_lexer>()))’
ctpg/examples/../include/ctpg/ctpg.hpp:1873:61: in ‘constexpr’ expansion of ‘((ctpg::parser<ctpg::nterm<ctpg::utils::slice>, std::tuple<ctpg::custom_term<ctpg::regex::regex_parser::<lambda(auto:50)> >, ctpg::custom_term<ctpg::regex::char_subset (*)(std::basic_string_view<char, std::char_traits<char> >)>, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term>, std::tuple<ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<unsigned int> >, std::tuple<ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<unsigned int>, ctpg::custom_term<ctpg::regex::regex_parser::<lambda(auto:50)> > >, ctpg::detail::rule<false, ctpg::regex::regex_parser::<lambda(ctpg::size32_t, ctpg::size32_t)>, ctpg::nterm<unsigned int>, ctpg::nterm<unsigned int>, ctpg::custom_term<ctpg::regex::regex_parser::<lambda(auto:50)> > >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:51&, ctpg::size32_t)>, ctpg::nterm<ctpg::utils::slice>, ctpg::custom_term<ctpg::regex::regex_parser::<lambda(auto:50)> > >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:52&, const auto:53&)>, ctpg::nterm<ctpg::utils::slice>, ctpg::custom_term<ctpg::regex::char_subset (*)(std::basic_string_view<char, std::char_traits<char> >)> >, ctpg::detail::rule<false, ctpg::ftors::element<2, std::integer_sequence<long unsigned int, 0> >, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term>, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:54&, ctpg::regex::regex_parser::slice, ctpg::skip)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term>, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:55&, ctpg::regex::regex_parser::slice, ctpg::skip)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term>, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:56&, ctpg::regex::regex_parser::slice, ctpg::skip)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term>, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:57&, ctpg::regex::regex_parser::slice, ctpg::skip, ctpg::size32_t, ctpg::skip)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term, ctpg::nterm<unsigned int>, ctpg::char_term>, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:58&, ctpg::regex::regex_parser::slice, ctpg::regex::regex_parser::slice)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:59&, ctpg::regex::regex_parser::slice, ctpg::skip, ctpg::regex::regex_parser::slice)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> > >, ctpg::use_lexer<ctpg::regex::regex_lexer>, ctpg::default_limits>*)this)->ctpg::parser<ctpg::nterm<ctpg::utils::slice>, std::tuple<ctpg::custom_term<ctpg::regex::regex_parser::<lambda(auto:50)> >, ctpg::custom_term<ctpg::regex::char_subset (*)(std::basic_string_view<char, std::char_traits<char> >)>, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term>, std::tuple<ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<unsigned int> >, std::tuple<ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<unsigned int>, ctpg::custom_term<ctpg::regex::regex_parser::<lambda(auto:50)> > >, ctpg::detail::rule<false, ctpg::regex::regex_parser::<lambda(ctpg::size32_t, ctpg::size32_t)>, ctpg::nterm<unsigned int>, ctpg::nterm<unsigned int>, ctpg::custom_term<ctpg::regex::regex_parser::<lambda(auto:50)> > >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:51&, ctpg::size32_t)>, ctpg::nterm<ctpg::utils::slice>, ctpg::custom_term<ctpg::regex::regex_parser::<lambda(auto:50)> > >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:52&, const auto:53&)>, ctpg::nterm<ctpg::utils::slice>, ctpg::custom_term<ctpg::regex::char_subset (*)(std::basic_string_view<char, std::char_traits<char> >)> >, ctpg::detail::rule<false, ctpg::ftors::element<2, std::integer_sequence<long unsigned int, 0> >, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term>, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:54&, ctpg::regex::regex_parser::slice, ctpg::skip)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term>, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:55&, ctpg::regex::regex_parser::slice, ctpg::skip)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term>, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:56&, ctpg::regex::regex_parser::slice, ctpg::skip)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term>, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:57&, ctpg::regex::regex_parser::slice, ctpg::skip, ctpg::size32_t, ctpg::skip)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term, ctpg::nterm<unsigned int>, ctpg::char_term>, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:58&, ctpg::regex::regex_parser::slice, ctpg::regex::regex_parser::slice)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:59&, ctpg::regex::regex_parser::slice, ctpg::skip, ctpg::regex::regex_parser::slice)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> > >, ctpg::use_lexer<ctpg::regex::regex_lexer>, ctpg::default_limits>::parser(grammar_root, std::tuple<ctpg::custom_term<ctpg::regex::regex_parser::<lambda(auto:50)> >, ctpg::custom_term<ctpg::regex::char_subset (*)(std::basic_string_view<char, std::char_traits<char> >)>, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term>(terms), std::tuple<ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<unsigned int> >(nterms), (* & std::move<tuple<ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<unsigned int>, ctpg::custom_term<ctpg::regex::regex_parser::<lambda(auto:50)> > >, ctpg::detail::rule<false, ctpg::regex::regex_parser::<lambda(ctpg::size32_t, ctpg::size32_t)>, ctpg::nterm<unsigned int>, ctpg::nterm<unsigned int>, ctpg::custom_term<ctpg::regex::regex_parser::<lambda(auto:50)> > >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:51&, ctpg::size32_t)>, ctpg::nterm<ctpg::utils::slice>, ctpg::custom_term<ctpg::regex::regex_parser::<lambda(auto:50)> > >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:52&, const auto:53&)>, ctpg::nterm<ctpg::utils::slice>, ctpg::custom_term<ctpg::regex::char_subset (*)(basic_string_view<char, char_traits<char> >)> >, ctpg::detail::rule<false, ctpg::ftors::element<2, integer_sequence<long unsigned int, 0> >, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term>, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:54&, ctpg::regex::regex_parser::slice, ctpg::skip)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term>, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:55&, ctpg::regex::regex_parser::slice, ctpg::skip)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term>, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:56&, ctpg::regex::regex_parser::slice, ctpg::skip)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term>, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:57&, ctpg::regex::regex_parser::slice, ctpg::skip, ctpg::size32_t, ctpg::skip)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term, ctpg::nterm<unsigned int>, ctpg::char_term>, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:58&, ctpg::regex::regex_parser::slice, ctpg::regex::regex_parser::slice)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:59&, ctpg::regex::regex_parser::slice, ctpg::skip, ctpg::regex::regex_parser::slice)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> > >&>((* & rules))))’
ctpg/examples/../include/ctpg/ctpg.hpp:1894:40: in ‘constexpr’ expansion of ‘sa.ctpg::parser<ctpg::nterm<ctpg::utils::slice>, std::tuple<ctpg::custom_term<ctpg::regex::regex_parser::<lambda(auto:50)> >, ctpg::custom_term<ctpg::regex::char_subset (*)(std::basic_string_view<char, std::char_traits<char> >)>, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term>, std::tuple<ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<unsigned int> >, std::tuple<ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<unsigned int>, ctpg::custom_term<ctpg::regex::regex_parser::<lambda(auto:50)> > >, ctpg::detail::rule<false, ctpg::regex::regex_parser::<lambda(ctpg::size32_t, ctpg::size32_t)>, ctpg::nterm<unsigned int>, ctpg::nterm<unsigned int>, ctpg::custom_term<ctpg::regex::regex_parser::<lambda(auto:50)> > >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:51&, ctpg::size32_t)>, ctpg::nterm<ctpg::utils::slice>, ctpg::custom_term<ctpg::regex::regex_parser::<lambda(auto:50)> > >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:52&, const auto:53&)>, ctpg::nterm<ctpg::utils::slice>, ctpg::custom_term<ctpg::regex::char_subset (*)(std::basic_string_view<char, std::char_traits<char> >)> >, ctpg::detail::rule<false, ctpg::ftors::element<2, std::integer_sequence<long unsigned int, 0> >, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term>, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:54&, ctpg::regex::regex_parser::slice, ctpg::skip)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term>, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:55&, ctpg::regex::regex_parser::slice, ctpg::skip)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term>, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:56&, ctpg::regex::regex_parser::slice, ctpg::skip)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term>, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:57&, ctpg::regex::regex_parser::slice, ctpg::skip, ctpg::size32_t, ctpg::skip)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term, ctpg::nterm<unsigned int>, ctpg::char_term>, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:58&, ctpg::regex::regex_parser::slice, ctpg::regex::regex_parser::slice)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<true, ctpg::regex::regex_parser::<lambda(auto:59&, ctpg::regex::regex_parser::slice, ctpg::skip, ctpg::regex::regex_parser::slice)>, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice>, ctpg::char_term, ctpg::nterm<ctpg::utils::slice> >, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<ctpg::utils::slice>, ctpg::nterm<ctpg::utils::slice> > >, ctpg::use_lexer<ctpg::regex::regex_lexer>, ctpg::default_limits>::state_analyzer::analyze_states()’
ctpg/examples/../include/ctpg/ctpg.hpp:2359:42: warning: C++20 says that these are ambiguous, even though the second is reversed:
2359 | if (states[i].kernel == kernel)
| ~~~~~~~~~~~~~~~~~^~~~~~~~~
ctpg/examples/../include/ctpg/ctpg.hpp:268:24: note: candidate 1: ‘constexpr bool ctpg::stdex::cbitset<N>::operator==(const ctpg::stdex::cbitset<N>&) [with long unsigned int N = 960]’
268 | constexpr bool operator == (const cbitset<N>& other)
| ^~~~~~~~
ctpg/examples/../include/ctpg/ctpg.hpp:268:24: note: candidate 2: ‘constexpr bool ctpg::stdex::cbitset<N>::operator==(const ctpg::stdex::cbitset<N>&) [with long unsigned int N = 960]’ (reversed)
ctpg/examples/../include/ctpg/ctpg.hpp:268:24: note: try making the operator a ‘const’ member function
ctpg/examples/../include/ctpg/ctpg.hpp: In instantiation of ‘constexpr void ctpg::parser<ctpg::nterm<ValueType>, std::tuple<_UTypes ...>, std::tuple<_Tp ...>, std::tuple<R ...>, LexerUsage, Limits>::state_analyzer::transitions(ctpg::size16_t, ctpg::size16_t, const situation_vector&) [with RootValueType = long unsigned int; Terms = {ctpg::regex_term<ctjs::number_pattern>, ctpg::regex_term<ctjs::string_pattern>, ctpg::string_term<5>, ctpg::string_term<6>, ctpg::string_term<5>, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term}; NTerms = {ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>}; Rules = {ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:61)>, ctpg::nterm<long unsigned int>, ctpg::regex_term<ctjs::number_pattern> >, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:62)>, ctpg::nterm<long unsigned int>, ctpg::regex_term<ctjs::string_pattern> >, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:63)>, ctpg::nterm<long unsigned int>, ctpg::string_term<5> >, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:64)>, ctpg::nterm<long unsigned int>, ctpg::string_term<6> >, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:65)>, ctpg::nterm<long unsigned int>, ctpg::string_term<5> >, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int> >, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int> >, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::char_term>, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:66, auto:67, ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::char_term>, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(ctpg::skip, ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::char_term, ctpg::char_term>, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::char_term>, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:68, auto:69, ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::char_term>, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(ctpg::skip, ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::char_term, ctpg::char_term>, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int> >, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:70, ctpg::skip, ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::char_term, ctpg::nterm<long unsigned int> >, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int> >, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:71, ctpg::skip, ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::char_term, ctpg::nterm<long unsigned int> >, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:72, ctpg::skip, ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::regex_term<ctjs::string_pattern>, ctpg::char_term, ctpg::nterm<long unsigned int> >}; LexerUsage = ctpg::use_generated_lexer; Limits = ctpg::default_limits; ctpg::size16_t = short unsigned int; situation_vector = ctpg::stdex::cvector<unsigned int, 626, void>]’:
ctpg/examples/../include/ctpg/ctpg.hpp:2223:32: required from here
ctpg/examples/ctjs.cpp:429:32: in ‘constexpr’ expansion of ‘((ctjs::json<89>*)(& js))->ctjs::json<89>::json(txt)’
ctpg/examples/ctjs.cpp:382:18: in ‘constexpr’ expansion of ‘((ctjs::json<89>*)this)->ctjs::json<89>::parse((* & txt))’
ctpg/examples/ctjs.cpp:429:32: in ‘constexpr’ expansion of ‘ctjs::create_parser(chunks_builder&)()’
ctpg/examples/ctjs.cpp:429:32: in ‘constexpr’ expansion of ‘ctpg::parser<ctpg::nterm<long unsigned int>, std::tuple<ctpg::regex_term<ctjs::number_pattern>, ctpg::regex_term<ctjs::string_pattern>, ctpg::string_term<5>, ctpg::string_term<6>, ctpg::string_term<5>, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term>, std::tuple<ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int> >, std::tuple<ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:61)>, ctpg::nterm<long unsigned int>, ctpg::regex_term<ctjs::number_pattern> >, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:62)>, ctpg::nterm<long unsigned int>, ctpg::regex_term<ctjs::string_pattern> >, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:63)>, ctpg::nterm<long unsigned int>, ctpg::string_term<5> >, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:64)>, ctpg::nterm<long unsigned int>, ctpg::string_term<6> >, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:65)>, ctpg::nterm<long unsigned int>, ctpg::string_term<5> >, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int> >, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int> >, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::char_term>, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:66, auto:67, ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::char_term>, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(ctpg::skip, ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::char_term, ctpg::char_term>, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::char_term>, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:68, auto:69, ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::char_term>, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(ctpg::skip, ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::char_term, ctpg::char_term>, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int> >, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:70, ctpg::skip, ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::char_term, ctpg::nterm<long unsigned int> >, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int> >, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:71, ctpg::skip, ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::char_term, ctpg::nterm<long unsigned int> >, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:72, ctpg::skip, ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::regex_term<ctjs::string_pattern>, ctpg::char_term, ctpg::nterm<long unsigned int> > >, ctpg::use_generated_lexer, ctpg::default_limits>(js_object, ctpg::terms(const Terms& ...) [with Terms = {regex_term<ctjs::number_pattern>, regex_term<ctjs::string_pattern>, char [5], char [6], char [5], char, char, char, char, char, char}](js_string, "true", "false", "null", '[', ']', ',', '{', '}', ':'), ctpg::nterms(NTerms ...) [with NTerms = {nterm<long unsigned int>, nterm<long unsigned int>, nterm<long unsigned int>, nterm<long unsigned int>, nterm<long unsigned int>, nterm<long unsigned int>, nterm<long unsigned int>, nterm<long unsigned int>}](js_object_start, js_array, js_array_start, js_value, js_array_elements, js_object_elements, js_object_element), ctpg::rules(Rules&& ...) [with Rules = {detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:61)>, nterm<long unsigned int>, regex_term<ctjs::number_pattern> >, detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:62)>, nterm<long unsigned int>, regex_term<ctjs::string_pattern> >, detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:63)>, nterm<long unsigned int>, string_term<5> >, detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:64)>, nterm<long unsigned int>, string_term<6> >, detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:65)>, nterm<long unsigned int>, string_term<5> >, detail::rule<false, std::nullptr_t, nterm<long unsigned int>, nterm<long unsigned int> >, detail::rule<false, std::nullptr_t, nterm<long unsigned int>, nterm<long unsigned int> >, detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(skip)>, nterm<long unsigned int>, char_term>, detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:66, auto:67, skip)>, nterm<long unsigned int>, nterm<long unsigned int>, nterm<long unsigned int>, char_term>, detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(skip, skip)>, nterm<long unsigned int>, char_term, char_term>, detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(skip)>, nterm<long unsigned int>, char_term>, detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:68, auto:69, skip)>, nterm<long unsigned int>, nterm<long unsigned int>, nterm<long unsigned int>, char_term>, detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(skip, skip)>, nterm<long unsigned int>, char_term, char_term>, detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(skip)>, nterm<long unsigned int>, nterm<long unsigned int> >, detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:70, skip, skip)>, nterm<long unsigned int>, nterm<long unsigned int>, char_term, nterm<long unsigned int> >, detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(skip)>, nterm<long unsigned int>, nterm<long unsigned int> >, detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:71, skip, skip)>, nterm<long unsigned int>, nterm<long unsigned int>, char_term, nterm<long unsigned int> >, detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:72, skip, skip)>, nterm<long unsigned int>, regex_term<ctjs::string_pattern>, char_term, nterm<long unsigned int> >}](ctpg::detail::rule<RequiresContext, F, L, R>::operator>=(F1&&) [with F1 = ctjs::create_parser(chunks_builder&)::<lambda(auto:62)>; bool RequiresContext = false; F = std::nullptr_t; L = ctpg::nterm<long unsigned int>; R = {ctpg::regex_term<ctjs::string_pattern>}](<lambda closure object>ctjs::create_parser(chunks_builder&)::<lambda(auto:62)>{(* & b)}), ctpg::detail::rule<RequiresContext, F, L, R>::operator>=(F1&&) [with F1 = ctjs::create_parser(chunks_builder&)::<lambda(auto:63)>; bool RequiresContext = false; F = std::nullptr_t; L = ctpg::nterm<long unsigned int>; R = {ctpg::string_term<5>}](<lambda closure object>ctjs::create_parser(chunks_builder&)::<lambda(auto:63)>{(* & b)}), ctpg::detail::rule<RequiresContext, F, L, R>::operator>=(F1&&) [with F1 = ctjs::create_parser(chunks_builder&)::<lambda(auto:64)>; bool RequiresContext = false; F = std::nullptr_t; L = ctpg::nterm<long unsigned int>; R = {ctpg::string_term<6>}](<lambda closure object>ctjs::create_parser(chunks_builder&)::<lambda(auto:64)>{(* & b)}), ctpg::detail::rule<RequiresContext, F, L, R>::operator>=(F1&&) [with F1 = ctjs::create_parser(chunks_builder&)::<lambda(auto:65)>; bool RequiresContext = false; F = std::nullptr_t; L = ctpg::nterm<long unsigned int>; R = {ctpg::string_term<5>}](<lambda closure object>ctjs::create_parser(chunks_builder&)::<lambda(auto:65)>{(* & b)}), ctpg::nterm<ValueType>::operator()(Args&& ...) const [with Args = {const ctpg::nterm<long unsigned int>&}; ValueType = long unsigned int](js_array), ctpg::nterm<ValueType>::operator()(Args&& ...) const [with Args = {const ctpg::nterm<long unsigned int>&}; ValueType = long unsigned int](js_object), ctpg::detail::rule<RequiresContext, F, L, R>::operator>=(F1&&) [with F1 = ctjs::create_parser(chunks_builder&)::<lambda(ctpg::skip)>; bool RequiresContext = false; F = std::nullptr_t; L = ctpg::nterm<long unsigned int>; R = {ctpg::char_term}](<lambda closure object>ctjs::create_parser(chunks_builder&)::<lambda(ctpg::skip)>{(* & b)}), ctpg::detail::rule<RequiresContext, F, L, R>::operator>=(F1&&) [with F1 = ctjs::create_parser(chunks_builder&)::<lambda(auto:66, auto:67, ctpg::skip)>; bool RequiresContext = false; F = std::nullptr_t; L = ctpg::nterm<long unsigned int>; R = {ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::char_term}](<lambda closure object>ctjs::create_parser(chunks_builder&)::<lambda(auto:66, auto:67, ctpg::skip)>{(* & b)}), ctpg::detail::rule<RequiresContext, F, L, R>::operator>=(F1&&) [with F1 = ctjs::create_parser(chunks_builder&)::<lambda(ctpg::skip, ctpg::skip)>; bool RequiresContext = false; F = std::nullptr_t; L = ctpg::nterm<long unsigned int>; R = {ctpg::char_term, ctpg::char_term}](<lambda closure object>ctjs::create_parser(chunks_builder&)::<lambda(ctpg::skip, ctpg::skip)>{(* & b)}), ctpg::detail::rule<RequiresContext, F, L, R>::operator>=(F1&&) [with F1 = ctjs::create_parser(chunks_builder&)::<lambda(ctpg::skip)>; bool RequiresContext = false; F = std::nullptr_t; L = ctpg::nterm<long unsigned int>; R = {ctpg::char_term}](<lambda closure object>ctjs::create_parser(chunks_builder&)::<lambda(ctpg::skip)>{(* & b)}), ctpg::detail::rule<RequiresContext, F, L, R>::operator>=(F1&&) [with F1 = ctjs::create_parser(chunks_builder&)::<lambda(auto:68, auto:69, ctpg::skip)>; bool RequiresContext = false; F = std::nullptr_t; L = ctpg::nterm<long unsigned int>; R = {ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::char_term}](<lambda closure object>ctjs::create_parser(chunks_builder&)::<lambda(auto:68, auto:69, ctpg::skip)>{(* & b)}), ctpg::detail::rule<RequiresContext, F, L, R>::operator>=(F1&&) [with F1 = ctjs::create_parser(chunks_builder&)::<lambda(ctpg::skip, ctpg::skip)>; bool RequiresContext = false; F = std::nullptr_t; L = ctpg::nterm<long unsigned int>; R = {ctpg::char_term, ctpg::char_term}](<lambda closure object>ctjs::create_parser(chunks_builder&)::<lambda(ctpg::skip, ctpg::skip)>{(* & b)}), ctpg::detail::rule<RequiresContext, F, L, R>::operator>=(F1&&) [with F1 = ctjs::create_parser(chunks_builder&)::<lambda(ctpg::skip)>; bool RequiresContext = false; F = std::nullptr_t; L = ctpg::nterm<long unsigned int>; R = {ctpg::nterm<long unsigned int>}](<lambda closure object>ctjs::create_parser(chunks_builder&)::<lambda(ctpg::skip)>()), ctpg::detail::rule<RequiresContext, F, L, R>::operator>=(F1&&) [with F1 = ctjs::create_parser(chunks_builder&)::<lambda(auto:70, ctpg::skip, ctpg::skip)>; bool RequiresContext = false; F = std::nullptr_t; L = ctpg::nterm<long unsigned int>; R = {ctpg::nterm<long unsigned int>, ctpg::char_term, ctpg::nterm<long unsigned int>}](<lambda closure object>ctjs::create_parser(chunks_builder&)::<lambda(auto:70, ctpg::skip, ctpg::skip)>()), ctpg::detail::rule<RequiresContext, F, L, R>::operator>=(F1&&) [with F1 = ctjs::create_parser(chunks_builder&)::<lambda(ctpg::skip)>; bool RequiresContext = false; F = std::nullptr_t; L = ctpg::nterm<long unsigned int>; R = {ctpg::nterm<long unsigned int>}](<lambda closure object>ctjs::create_parser(chunks_builder&)::<lambda(ctpg::skip)>()), ctpg::detail::rule<RequiresContext, F, L, R>::operator>=(F1&&) [with F1 = ctjs::create_parser(chunks_builder&)::<lambda(auto:71, ctpg::skip, ctpg::skip)>; bool RequiresContext = false; F = std::nullptr_t; L = ctpg::nterm<long unsigned int>; R = {ctpg::nterm<long unsigned int>, ctpg::char_term, ctpg::nterm<long unsigned int>}](<lambda closure object>ctjs::create_parser(chunks_builder&)::<lambda(auto:71, ctpg::skip, ctpg::skip)>()), ctpg::detail::rule<RequiresContext, F, L, R>::operator>=(F1&&) [with F1 = ctjs::create_parser(chunks_builder&)::<lambda(auto:72, ctpg::skip, ctpg::skip)>; bool RequiresContext = false; F = std::nullptr_t; L = ctpg::nterm<long unsigned int>; R = {ctpg::regex_term<ctjs::string_pattern>, ctpg::char_term, ctpg::nterm<long unsigned int>}](<lambda closure object>ctjs::create_parser(chunks_builder&)::<lambda(auto:72, ctpg::skip, ctpg::skip)>{(* & b)})))’
ctpg/examples/../include/ctpg/ctpg.hpp:1894:40: in ‘constexpr’ expansion of ‘sa.ctpg::parser<ctpg::nterm<long unsigned int>, std::tuple<ctpg::regex_term<ctjs::number_pattern>, ctpg::regex_term<ctjs::string_pattern>, ctpg::string_term<5>, ctpg::string_term<6>, ctpg::string_term<5>, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term, ctpg::char_term>, std::tuple<ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int> >, std::tuple<ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:61)>, ctpg::nterm<long unsigned int>, ctpg::regex_term<ctjs::number_pattern> >, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:62)>, ctpg::nterm<long unsigned int>, ctpg::regex_term<ctjs::string_pattern> >, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:63)>, ctpg::nterm<long unsigned int>, ctpg::string_term<5> >, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:64)>, ctpg::nterm<long unsigned int>, ctpg::string_term<6> >, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:65)>, ctpg::nterm<long unsigned int>, ctpg::string_term<5> >, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int> >, ctpg::detail::rule<false, std::nullptr_t, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int> >, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::char_term>, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:66, auto:67, ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::char_term>, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(ctpg::skip, ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::char_term, ctpg::char_term>, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::char_term>, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:68, auto:69, ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::char_term>, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(ctpg::skip, ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::char_term, ctpg::char_term>, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int> >, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:70, ctpg::skip, ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::char_term, ctpg::nterm<long unsigned int> >, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int> >, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:71, ctpg::skip, ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::nterm<long unsigned int>, ctpg::char_term, ctpg::nterm<long unsigned int> >, ctpg::detail::rule<false, ctjs::create_parser(chunks_builder&)::<lambda(auto:72, ctpg::skip, ctpg::skip)>, ctpg::nterm<long unsigned int>, ctpg::regex_term<ctjs::string_pattern>, ctpg::char_term, ctpg::nterm<long unsigned int> > >, ctpg::use_generated_lexer, ctpg::default_limits>::state_analyzer::analyze_states()’
ctpg/examples/../include/ctpg/ctpg.hpp:2359:42: warning: C++20 says that these are ambiguous, even though the second is reversed:
2359 | if (states[i].kernel == kernel)
| ~~~~~~~~~~~~~~~~~^~~~~~~~~
ctpg/examples/../include/ctpg/ctpg.hpp:268:24: note: candidate 1: ‘constexpr bool ctpg::stdex::cbitset<N>::operator==(const ctpg::stdex::cbitset<N>&) [with long unsigned int N = 988]’
268 | constexpr bool operator == (const cbitset<N>& other)
| ^~~~~~~~
ctpg/examples/../include/ctpg/ctpg.hpp:268:24: note: candidate 2: ‘constexpr bool ctpg::stdex::cbitset<N>::operator==(const ctpg::stdex::cbitset<N>&) [with long unsigned int N = 988]’ (reversed)
ctpg/examples/../include/ctpg/ctpg.hpp:268:24: note: try making the operator a ‘const’ member function
from cplusplus.
Making some tests I found that this causes trouble to cxx
:
namespace ctjs
{
#if 0
constexpr char number_pattern[] = R"_(\-?(0|[1-9][0-9]*)(\.[0-9]+)?((e|E)(\+|\-)[0-9]+)?)_";
#endif
}
Output:
./cxx -E test-namespace-empty.cpp
>./cxx -E test-namespace-empty.cpp
# 1 "test-namespace-empty.cpp"
namespace ctjs
{
Notice that the namespace is truncated by the preprocessing !
from cplusplus.
The last example without -E
:
./cxx test-namespace-empty.cpp
test-namespace-empty.cpp:7:1: expected '}'
^
from cplusplus.
Related Issues (20)
- Can't parse "va_arg" HOT 7
- Changing "specs/grammar.txt" to an EBNF understood by https://www.bottlecaps.de/rr/ui HOT 8
- Can't parse sizeof properly HOT 2
- Do not recognize "#pragma one" HOT 8
- cxx doesn't report missing file passed for parsing HOT 1
- cxx can't handle string concatenation in macros correctly
- Fail to parse cppfront HOT 3
- expected a declaration "_Noreturn void __wasi_proc_exit(" HOT 2
- Bad preprocessing behavior HOT 12
- Carbon "using Nonnull = T _Nonnull;"
- expected a declaration HOT 2
- Preprocessor macro problem HOT 4
- Segmentation fault when parsing JUCE HOT 4
- expected a statement HOT 5
- Add "-M" and "-MM" command line options HOT 2
- Testing with examples from https://en.cppreference.com/w/ HOT 5
- return __extension__ (__m128){ 0.0f, 0.0f, 0.0f, 0.0f }; HOT 8
- Testing with https://github.com/duneroadrunner/SaferCPlusPlus
- Memory usage and permissive parsing with sqlite3 HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cplusplus.