Я обычно использую ссылки вместо указателей, когда хочу NULL
быть невозможным Поскольку у нас не может быть контейнеров ссылок, каким должен быть тип контейнера, который содержит только ненулевые указатели?
Если бы вы использовали контейнер указателей, вы бы просто использовали контейнер указателей, не помещали в него никаких указателей 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
}
Других решений пока нет …