Я создал класс, который содержит 3 элемента одного типа (что-то вроде std::pair<T,std::pair<T,T>>
).Более того, я подготовил его к использованию for(auto&var:t)
Но я не знаю, сделал ли я это безопасно.
template <class T>
class Troika
{
public:
Troika(const T& f, const T& s, const T& t)
:first(f), second(s), third(t) {}
Troika(){}
T first;
T second;
T third;
typedef T* iterator;
typedef const T* const_iterator;
iterator begin()
{
return &first;
}
const_iterator begin() const
{
return &first;
}
iterator end()
{
return &third+1;
}
const_iterator end() const
{
return &third + 1;
}
};
Я имею в виду эту часть: return &third + 1;
.Я знаю, что если кто-то не обладает огромными знаниями об арифметике указателей в c ++, это действительно опасно.Эти элементы расположены один за другим рядом друг с другом?