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

            Bug ID: 93103
           Summary: Generic function syntax does not check return concept
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: mateusz.pusz at gmail dot com
  Target Milestone: ---

In the example below `foo` correctly fails the concept check while `boo`
ignores the constraints of the return type:

```
#include <type_traits>

template<typename T>
concept SomeConcept = true;

template<typename T>
concept Integral = std::is_integral_v<T>;

template<SomeConcept T>
Integral auto foo(T t) { return t; }

Integral auto boo(SomeConcept auto t) { return t; }

int main()
{
    auto x1 = foo(3.14);
    auto x2 = boo(3.14);
}
```

Compiler Explorer link: https://godbolt.org/z/-K39X7.

Reply via email to