В msvc у меня есть такие функции, и он собирается, но в gcc это не нравится.
void classname::a(std::string &text)
{
stdStringFromClass = text;
}
void classname::b(char *text)
{
a(std::string(text));
}
Проблема здесь в &, gcc, я думаю, беспокоюсь, что, так как я только что создал этоstd :: string, что передача по ссылке рискованна, поэтому она не собирается, но msvc даже не предупреждает меня.
Почему это неверный c ++ to gcc? Я продолжаю слышать, что msvc строже gcc.
Спасибо
Ошибка
AguiWidgetBase.cpp: In member function ‘void AguiWidgetBase::setText(char*)’:
AguiWidgetBase.cpp:91:27: error: no matching function for call to ‘AguiWidgetBase::setText(std::string)’
AguiWidgetBase.cpp:80:6: note: candidates are: void AguiWidgetBase::setText(std::string&)
AguiWidgetBase.cpp:88:6: note: void AguiWidgetBase::setText(char*)
это будет хорошо?
void classname::a(std::string &text)
{
stdStringFromClass = text;
}
void classname::b(char *text)
{
std::string k = text;
a(k);
}