1

私が説明していることの正気を無視してstd::move()、基本コンストラクターに引数を渡すために関数を使用すると、構築時間が改善されますか?

struct Bar {
    Bar(std::string);

    std::string _s;
}

struct Foo : public Bar {
    Foo(std::string);
}


struct Bar(std::string bs) : _s(std::move(bs)) {
    // 1
}

struct Foo(std::string fs) : Bar(std::move(fs)) {
    // 2
}

では、この例では、のコンストラクターmove()で使用されてFooいるため、文字列の追加のコピーが作成されるのを防ぐことができますか?

bs明確にするために、この設計は、 とfsポイント// 1で とを使用しようとするべきではないことを意味しますが、両方の場所で使用しても安全ですか// 2?_s

4

1 に答える 1