Skip to content

Ambiguous operator== overloads with GCC 13 and C++20 #3182

Open
@jwillikers

Description

When building libsass version 3.6.5 with GCC 13.2.1 and C++20 enabled, there are compiler errors regarding amibuous overloads for operator== member functions in ast_sel_cmp.cpp.
The errors are as follows.

/home/jordan/.conan/data/libsass/3.6.5/_/_/build/b9b403c606639d0c440df3dfd255621c158be49e/src/src/ast_sel_cmp.cpp:17:51: error: ambiguous overload for 'operator==' (operand types are 'const Sass::SelectorList' and 'const Sass::List')
   17 |     if (auto l = Cast<List>(&rhs)) { return *this == *l; }
      |                                             ~~~~~ ^~ ~~
      |                                             |        |
      |                                             |        const Sass::List
      |                                             const Sass::SelectorList

/home/jordan/.conan/data/libsass/3.6.5/_/_/build/b9b403c606639d0c440df3dfd255621c158be49e/src/src/ast_sel_cmp.cpp:30:54: error: ambiguous overload for 'operator==' (operand types are 'const Sass::SelectorList' and 'const Sass::List')
   30 |     if (auto list = Cast<List>(&rhs)) { return *this == *list; }
      |                                                ~~~~~ ^~ ~~~~~
      |                                                |        |
      |                                                |        const Sass::List
      |                                                const Sass::SelectorList

/home/jordan/.conan/data/libsass/3.6.5/_/_/build/b9b403c606639d0c440df3dfd255621c158be49e/src/src/ast_sel_cmp.cpp:167:20: error: ambiguous overload for 'operator==' (operand types are 'Sass::SelectorComponent' and 'const Sass::SimpleSelector')
  167 |     return *get(0) == rhs;
      |            ~~~~~~~ ^~ ~~~
      |            |          |
      |            |          const Sass::SimpleSelector
      |            Sass::SelectorComponent

/home/jordan/.conan/data/libsass/3.6.5/_/_/build/b9b403c606639d0c440df3dfd255621c158be49e/src/src/ast_sel_cmp.cpp:286:18: error: ambiguous overload for 'operator==' (operand types are 'const Sass::SimpleSelector' and 'Sass::SelectorComponent')
  286 |     return *this == *rhs.get(0);
      |            ~~~~~ ^~ ~~~~~~~~~~~
      |            |        |
      |            |        Sass::SelectorComponent
      |            const Sass::SimpleSelector

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions