Какие преимущества имеет использование std::reference_wrapper в качестве параметра шаблона контейнеров вместо необработанных указателей? Это std::vector<std::reference_wrapper<MyClass> > vs. std::vector<MyClass*>
Мне нравится забывать о нулях и не использовать синтаксис указателя, но многословие типов (т.е. vector<reference_wrapper<MyClass> >) плюс использование сайта вызова std:: ref для обертывания фактической ссылки заставляет меня думать, что это не стоит он.
Я имею в виду случаи, когда использование std:: shared_ptr или любого другого интеллектуального указателя не является вариантом.
Существуют ли другие преимущества использования reference_wrapper или любых других факторов, которые я в настоящее время не учитываю? (Я думаю, мой вопрос относится как к С++ 11 reference_wrapper, так и к boost)