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

            Bug ID: 104640
           Summary: incomplete unicode support for User-defined literals
           Product: gcc
           Version: 11.2.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: maik.urbannek at cattatech dot de
  Target Milestone: ---

```
int operator""_π(const unsigned long long i){return (static_cast<int>(i));}

template <char...> double operator "" _π(){return 12.0;}

int main() {
    const double d=0.0_π;
    return 234_π+static_cast<int>(d);
}
```

In my opinion this should work (clang compiles it).

gcc produces the following error:
```
 error: expected initializer before '\U000003c0'
    1 | int operator""_π(const unsigned long long i){return
(static_cast<int>(i));}
      |                ^
Compiler returned: 1
```

Gcc(since gcc10) can compile the second operator (line 3), but not the first
(line 1).
  • [Bug c++/104640] New: incom... maik.urbannek at cattatech dot de via Gcc-bugs

Reply via email to