template struct node: base_node { T _value; node() = default; explicit node(const T& v) : _value(v) {} explicit node(T&& v) : _value(std::move(v)) {} }; [/code] [code] template class base_iterator { using base_node_t = std::conditional_t; using node_t = std::conditional_t; [/code] [code] using iterator = base_iterator; using const_iterator = base_iterator; [/code] [code] iterator insert_after(const_iterator pos, const_reference value) { // ????? we need used const_cast?? } [/code] Как добавить элемент через const_iterator? Должен ли я использовать const_cast ? Можно ли обойтись без этого и как правильнее реализовать этот метод?