Какой тип указателя я должен передать методу в C ++ 11?

Я ищу два разных сценария:

  1. У вас есть shared_ptr
  2. У вас есть unique_ptr

Ответ может быть таким же.

Рассмотрим метод, который использует указатель, но не принимает на себя владение:

void use_pointer(T ptr)
{
    ptr->act();
}

Должен T быть

  • my_type * (необработанный указатель)
  • const shared_ptr & (отправка const ref, если используется shared_ptr)
  • const unique_ptr & (отправка const ref, если используется unique_ptr)
  • weak_ptr (построение weak_ptr для вызова метода)

Что-то еще? Спасибо!

5
задан Max 15 February 2012 в 15:42
поделиться