возвращаемая строка; не работает без фигурных скобок

Это функция, которую я имею в .h файле:

static std::string ReturnString(std::string some_string)
return ("\t<" + some_string + " ");

Компилятор (g ++ -std = c ++ 0x -pedantic -Wall -Wextra) выдает следующие ошибки:

error:expected identifier before '(' token
error:named return values are no longer supported
error:expected '{' at end of input
warning: no return statement in function returning non-void [-Wreturn-type]

Но,

static std::string ReturnString(std::string some_string)
{
return ("\t<" + some_string + " ");
}

работает отлично.
Четное,

static std::string ReturnString(std::string some_string)
{
return "\t<" + some_string + " ";
}

тоже работает

Может кто-нибудь, пожалуйста, объясните мне это, пожалуйста? Мне не хватает базовых знаний о строках?

Благодарю.

0

Решение

static std::string ReturnString(std::string some_string)
return ("\t<" + some_string + " ");

Это на самом деле базовые знания C ++, которые вам не хватает. В C ++ тела функций должны быть заключены в фигурные скобки, {}, Итак, правильное определение для функции выше:

static std::string ReturnString(std::string some_string)
{
return ("\t<" + some_string + " ");
}
1

Другие решения

Это не имеет ничего общего со строками. Это о том, как вы определили свою функцию. В этом случае, ReturnString это функция, которая возвращает строку

Общий формат определения функции C ++:

ReturnType NameOfTheFunction(Parameters)
{
Implementation
}
0