C++ STL用string类的时候 编译器提示 error: no viable overloaded

C++ STL用string类的时候 编译器提示 error: no viable overloaded ‘=’,等于号不能重载

关键代码就是那句赋值

1
2
3
4
5
6
7
    ...

  if(s1_len > s2_len)
    for(int i = 1; i <= s1_len - s2_len; i++)
      s2 = '0' + s2;

    ...

然后编译器报错:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
main.cpp:41:10: error: no viable overloaded '='
      s2 = s2 + "0";
      ~~ ^ ~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/string:1330:19: note:
      candidate function not viable: 'this' argument has type 'const string' (aka 'const basic_string<char,
      char_traits<char>, allocator<char> >'), but method is not marked const
    basic_string& operator=(const basic_string& __str);
                  ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/string:1337:45: note:
      candidate function not viable: 'this' argument has type 'const string' (aka 'const basic_string<char,
      char_traits<char>, allocator<char> >'), but method is not marked const
    _LIBCPP_INLINE_VISIBILITY basic_string& operator=(const value_type* __s) {return assign(__s);}
                                            ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/string:1338:19: note:
      candidate function not viable: 'this' argument has type 'const string' (aka 'const basic_string<char,
      char_traits<char>, allocator<char> >'), but method is not marked const
    basic_string& operator=(value_type __c);
                  ^

我用的是Xcode的terminal-tools里的g++编译

原文链接: https://www.cnblogs.com/fenyuxingzhe/p/15186346.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    C++ STL用string类的时候 编译器提示 error: no viable overloaded

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/213199

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月13日 上午1:39
下一篇 2023年2月13日 上午1:39

相关推荐