Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

clang-16: transcode_iterator.hpp: requires clause differs in template redeclaration #130

Closed
anarthal opened this issue Feb 28, 2024 · 0 comments

Comments

@anarthal
Copy link

Looks like clang is complaining about these two declarations:

#if BOOST_PARSER_DETAIL_TEXT_USE_CONCEPTS
        template<
            format FromFormat2,
            format ToFormat2,
            std::input_iterator I2,
            std::sentinel_for<I2> S2,
            transcoding_error_handler ErrorHandler2>
        requires std::convertible_to<std::iter_value_t<I2>, detail::format_to_type_t<FromFormat2>>
#else
        template<
            format FromFormat2,
            format ToFormat2,
            typename I2,
            typename S2,
            typename ErrorHandler2>
#endif
        friend class utf_iterator;

and

#if BOOST_PARSER_DETAIL_TEXT_USE_CONCEPTS
    template<
        format FromFormat,
        format ToFormat,
        std::input_iterator I,
        std::sentinel_for<I> S,
        transcoding_error_handler ErrorHandler>
        requires std::convertible_to<std::iter_value_t<I>, detail::format_to_type_t<FromFormat>>
#else
    template<
        format FromFormat,
        format ToFormat,
        typename I,
        typename S,
        typename ErrorHandler>
#endif
    class utf_iterator

I'd say they are identical except for template names. I don't know whether the standard forces you to use the same names or it's a clang bug.

Failing build: https://drone.cpp.al/boostorg/mysql/542/16/3

Compiler details:

  • toolset=clang-16
  • cxxstd=20
  • variant=debug
  • Building with asan and ubsan (although I don't think it makes a difference)
  • OS: Ubuntu 22.04
tzlaine added a commit that referenced this issue Feb 29, 2024
declarations are parsed to be non-identical.

Fixes #130.
tzlaine added a commit that referenced this issue Mar 2, 2024
declarations are parsed to be non-identical.

Fixes #130.
tzlaine added a commit that referenced this issue Mar 2, 2024
declarations are parsed to be non-identical.

Fixes #130.
tzlaine added a commit that referenced this issue Mar 2, 2024
declarations are parsed to be non-identical.

Fixes #130.
tzlaine added a commit that referenced this issue Mar 2, 2024
declarations are parsed to be non-identical.

Fixes #130.
tzlaine added a commit that referenced this issue Mar 3, 2024
declarations are parsed to be non-identical.

Fixes #130.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant