ちょっと相談に乗ってください。XMLライブラリ作ってるんです。
で、文字列を返す関数がたくさんあるんですけど戻り値の型で悩んでるんです。

必ず存在するのであれば無問題。
const wstring& getValue() const { return value; }

存在するか分からない場合はどうするのがよいでしょうか?
1.参照で返す。
const wstring& getAttribute(...) const { if(...) return value; else throw exception(); }

2.無理矢理参照で返す。
const wstring& getAttribute(...) const { return ... ? value : L""; }

3.stringのポインタで返す。
wstring* getAttribute(...) const { return ... ? value : nullptr; }

4.ポインタで返す。
wchar_t* getAttribute(...) const { return ... ? value.c_str() : nullptr; }