Передача временного объекта istringstream в istream_iterator <string>

У меня есть вопрос о следующем коде, который токенизирует строку (разделяет токены пробелом).

#include <iostream>
#include <iterator>
#include <sstream>
#include <string>
#include <vector>

using namespace std;

int main()
{
    string s="And I feel fine ...";
    istringstream ss(s);
    vector<string> tokens{istream_iterator<string>(ss),{}};
    for(auto& elem: tokens)
        cout << elem << endl;
}

Это прекрасно работает. С другой стороны, если я попытаюсь пройти временныйistringstream Возражатьistream_iterator (3-я строка внутриmain), такие как

vector<string> tokens{istream_iterator<string>(istringstream(s)),{}};

Я получаю ошибку во время компиляцииerror: no matching conversion for functional-style cast from 'istringstream' (aka 'basic_istringstream<char>') to 'istream_iterator<string>'

Я полагаю, что это потому, что я не могу привязать временное значение к неконстантной ссылке на значение и конструкторуistream_iterator принимает ссылку в качестве параметра. Есть ли способ построитьistream_iterator<string> из временного? Я не могу использоватьstd::ref на временном объекте либо ...

Спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос