Итак, я хочу написать контейнер для указателей, который скрывает тот факт, что это контейнер-указатель. И для моей функции AddMember
это работает, вроде.Значение семантики в диапазоне, основанном на цикле контейнера-указателя
#include <iostream>
#include <vector>
template<typename T>
class MyVector : public std::vector<T*>
{
public:
void AddMember(T& newMember)
{
this->push_back(&newMember);
}
};
int main()
{
int a, b;
MyVector<int> vec;
vec.AddMember(a);
vec.AddMember(b);
for (auto& member : vec)
{
std::cout << "Address:" << member << " Value: " << *member << std::endl;
}
return 0;
}
Теперь это можно реализовать предположительно begin()
и end()
таким образом, что диапазон на основе для цикла получает значение семантики? То есть только member
дает вам значение? Я не хочу использовать контейнеры boost ptr, потому что это будет несобственный контейнер.
Это похоже на проблему XY. Какую проблему вы действительно пытаетесь решить? – NathanOliver
Я хочу обернуть контейнер указателя std, дать ему некоторые дополнительные функции и семантику значений. Часть, с которой я борюсь, я показал. Не знаете, что еще вам сказать. – Psirus