Можно ли реализовать функцию C++, которая дает строковое представление каждого std::vector<T>
, до тех пор, как элемент типа T
может быть добавлен в выходной поток, какСтроковое представление станд :: вектор <T>
T x;
...
std::cout << x << std::endl;
Строковое представление должно выглядеть
[x, y, z]
Я попытался следующие, но что должно ?
быть?
template <typename T> std::string vectorToString(std::vector<T>& vec) {
std::string s;
for (T element : vec) {
?
}
return s;
}
См http://stackoverflow.com/questions/4850473/pretty-print-c-stl- контейнеры – Dan
Если вы заинтересованы в реализации этого по своему усмотрению, вы, вероятно, захотите узнать о SFINAE, trailing decltype() и std :: enable_if :) Но это выполнимо, и для этого требуются инструменты выше, чтобы обнаруживать во время компиляции если T является потокобезопасным. – bluescarni
Я думаю, было бы лучше сменить подпись на const ref: vectorToString (** const ** std :: vector < T > & vec) – borisbn