virtual std::shared_ptr<TaskData> prepare_data(std::size_t n) override { auto data = std::make_shared<common::RandomData<item_type>>(n, '0', 'z'); auto space_idx = common::RandomData<int>(n/10, 0, n); auto d = data->get_mutable(); for (auto i : space_idx.get_const()) d.at(i) = ' '; d.at(d.size()-1) = '0'; I() << std::string(d.begin(), d.end()); return data; }
T& get_mutable_as(size_t pos) { return *reinterpret_cast<T*>(get_mutable(pos)); }