Контейнер ссылок/указателей, не подлежащих обнулению

Я обычно использую ссылки вместо указателей, когда хочу NULL быть невозможен. Поскольку у нас нет контейнеров с ссылками, какой тип контейнера должен содержать только ненулевые указатели?

1 ответ

Если бы вы использовали контейнер указателей, вы бы просто использовали контейнер указателей, не помещали в него никаких указателей NULL и не двигались дальше.

Однако вы все равно можете иметь контейнер ссылок, если используете std::reference_wrapper. Например:

#include <vector>
#include <iostream>
#include <functional>
int main()
{
 int x = 5;
 std::vector<std::reference_wrapper<int>> v;
 v.push_back(std::reference_wrapper<int>(x));
 x = 6;
 std::cout << v[0]; // 6
}
</int></std::reference_wrapper<int></functional></iostream></vector>

Живая демонстрация

licensed under cc by-sa 3.0 with attribution.