no viable conversion from 'value_type' (aka 'char') to 'string' (aka 'basic_string<char, char_traits<char>, allocator<char> >')

13,026

Class std::string (correspondingly std::basic_string) has assignment operator

basic_string& operator=(charT c);

and this assignment operator is used in this code snippet

string convert(string name)
{
  string code;
  code = name[0]; // using of the assignment operator
  ...
}

However the class does not has an appropriate constructor that you could write

string code = name[0];

You can write like

string code( 1, name[0] );

using constructor

basic_string(size_type n, charT c, const Allocator& a = Allocator());
Share:
13,026
Lincoln
Author by

Lincoln

Updated on August 01, 2022

Comments

  • Lincoln
    Lincoln over 1 year
    string convert(string name)
    {
      string code = name[0];
      ...
    }
    

    I get "no viable conversion from 'value_type' (aka 'char') to 'string' (aka 'basic_string, allocator >')" from this line.

    If I change it to:

    string convert(string name)
    {
      string code;
      code = name[0];
      ...
    }
    

    Then it works. Can anyone explain why?