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

            Bug ID: 83328
           Summary: string.insert does not return a iterator when using
                    initializer lists
           Product: gcc
           Version: 7.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: gcc-bugs at marehr dot dialup.fu-berlin.de
  Target Milestone: ---

Hello gcc-team!

According to http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4659.pdf
[24.3.2.6.4]
or http://en.cppreference.com/w/cpp/string/basic_string/insert [9]

```
iterator insert(const_iterator p, initializer_list<charT> il
```

should return an iterator, but the following code

```
#include <string>

int main() {
  std::string s = " world!";
  auto it = s.insert(s.begin(), {'h', 'e', 'l', 'l', 'o'});

  return 0;
}
```

fails with

```
string.cpp: In function ‘int main()’:
string.cpp:5:8: error: ‘void it’ has incomplete type
   auto it = s.insert(s.begin(), {'h', 'e', 'l', 'l', 'o'});

        ^~
```

This behaviour is since g++-4.9

Reply via email to