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

            Bug ID: 96115
           Summary: Char literal, decays to a pointer when passed to
                    function pointer
           Product: gcc
           Version: 10.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: boris_oncev at hotmail dot com
  Target Milestone: ---

Example code:
struct SL{
    template <int N>
    SL(const char (&Str)[N]) {}
};

int foo(SL x) {
    return 2;
}

int main() {
    int (*f)(SL) = &foo;
    foo("asd"); // works fine
    f("asd"); // error could not convert '(const char*) to SL
}

Godbot link:
https://godbolt.org/z/vo8lOf

works on other compilers clang, msvc and icc

Reply via email to