-1

foo インスタンスのベクトルを文字列に変換しようとしていますが、std::transform で致命的なエラーが発生しています。

dataの値があるとします。

 [0] 
    [name] = John
    [size] = 3423

 [1] 
    [name] = Joseph
    [size] = 3413

コード:

struct foo {
    foo(std::string n, size_t s)
            : name(std::move(n)),
              size(s)
    {
    }
    std::string name;
    size_t size;
};

std::string server = "1";
std::vector<std::string> output;
output.reserve(static_cast<unsigned_long>(std::distance(std::begin(data), std::end(data))));

std::transform(std::begin(data),
               std::end(data),
               std::begin(output),
               [&, this](foo const& item){

            std::ostringstream result;
            data << server << ","
                 << item.name << ","
                 << item.size << ";";
            return result.str();
        });

デバッグ中は 、実装の行*__result = __unary_op(*_first)で停止し、 catch テスト フレームワークの FatalConditionHandler に移動します。私はキャッチテストとstd::transformの両方に不慣れです。誰かが問題の原因とその解決方法を説明できますか? どうもありがとう!tranformstl_algo.h

4

1 に答える 1