У меня есть std::vector
из std::reference_wrapper
объектов, которые я хочу напечатать с помощью printf (без cout); Теперь, если я пишуC++: справочные обертки и printf
int a=5;
std::reference_wrapper<int> b=a;
printf("%i\n\n",b);
я получаю номер nosense (я думаю, что это адрес a
); чтобы получить свое значение я должен сделать
printf("%i\n\n",b.get());
Есть ли способ иметь автоматический вызов .get()
функции в printf
(например, другой %
спецификатора, что печать мне reference_wrapper content
), так что я могу сделать обобщенную функцию, которая работает как с std::reference_wrapper<type>
и type
?
Первым шагом будет использование библиотеки iostream, а не библиотеки stdio. – Hurkyl
Ваш первый фрагмент кода не будет компилироваться повсюду. 'error: не может передавать объекты нетривиально-скопируемого типа 'class std :: reference_wrapper' through '...'' –
@Hurkyl Я уже использую iostream – volperossa