Глядя на реализацию std::reference_wrapper here Конструкторы и операторы очевидны для меня, но я не понял эту часть template< class... ArgTypes >
typename std::result_of<T&(ArgTypes&&...)>::type
У меня есть std::vector из std::reference_wrapper объектов, которые я хочу напечатать с помощью printf (без cout); Теперь, если я пишу int a=5;
std::reference_wrapper<int> b=a;
printf("%i\n\n",b);
Опасно ли возвращать ссылку обертку, как показано ниже: std::vector<std::reference_wrapper<int>> foo() {
int x = 10;
std::vector<std::reference_wrapper<int>> vec;
vec.push_back(x);
Вот два разных типа станд :: вектор, как пример: std::vector<std::reference_wrapper<MyClass>> rv;
std::vector<MyClass> v;
Возможный способ назначить между ними: for (const auto& mc : rv) {
v.p