https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111748

            Bug ID: 111748
           Summary: GCC does not understand partial ordering between
                    non-constrained and constrained templates for
                    specialization
           Product: gcc
           Version: 13.1.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jeanmichael.celerier at gmail dot com
  Target Milestone: ---

Consider: 

    #include<concepts>

    template<typename>
    void foo() { }

    template<std::integral> 
    void foo() { }

    template<> 
    void foo<bool>() { }

    int main() { foo<bool>(); }


According to the answers I got in https://stackoverflow.com/questions/77261120/
GCC should be able to compile this code, yet it fails due to a supposed
ambiguity between 

    template<typename>
    void foo() { }

and

    template<std::integral> 
    void foo() { }

as the base of foo<bool>

Reply via email to