Я являюсь участником проекта, который использует C++ 11. Я не уверен, когда должен использовать код ошибки для возвращаемых значений. Я нашел RVO в C++ отлично работает, даже если строка и struct данные возвращаются напрямую. Но если я использую код возврата, я не могу получить выгоду от RVO, и код немного лишний.Каков наилучший способ использования кода ошибки в C++?
Итак, каждый раз, когда я объявляю функцию, я не мог решить, для чего я должен использовать для возвращаемого значения. Как я должен соблюдать последовательность моего кода? Любой совет поможет мне.
// return string
MyError getString(string& out);
string getString();
// return struct
MyError getStructData(MyStruct& out);
MyStruct getStructData();
Если исключения недоступны, попробуйте вернуть 'boost :: variant'. –
Я не знал boost :: variant. Хотя это выглядит полезно, я не мог использовать boost в своем проекте из-за политики моего проекта. В любом случае, спасибо за ваш совет! – jef