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