2017-07-18 10 views
0

文字列を実装しようとしています。文字列を小文字に変換したいので、boost::to_lower_copy(m_s)と呼ばれます。実際にはm_sstd::stringです。私の質問は、to_lower_copy()return {boost::to_lower_copy(m_s)};がどのように機能するかです。どのようにString型を返すことができますか? ありがとうございました。"return {...};"はC++ 11でどのように動作しますか?

class String { 
    std::string m_s; 
public: 
    String(const std::string s) : m_s(s) { } 
    String to_lower_copy() const { 
     return {boost::to_lower_copy(m_s)}; 
    } 
}; 
+7

'return {...}'は 'std :: string {...}'を呼び出し、新しく構築された文字列を返します。これは、関数がstd :: stringを返す必要があることをコンパイラーが認識しているためです。 –

+1

@RichardCritten、なぜコメントに答えますか?あなたはあなたのコメントを回答に変換する必要があります。 –

+0

@RichardCritten 'String'を意味しましたか? – LogicStuff

答えて

1

attr(optional) return braced-init-list ; C++ 11で導入された代替return文の構文です。コピーリストは、関数の戻り値を初期化します。コンパイラは、宣言の一部であるため、関数が返す型を認識します。

関連する問題