Следующий код компилируется. Кажется, работает нормально.
Но может ли это привести к неопределенному поведению?
Я хочу выбросить константу *this
.
Это позволяет const my_iterator
изменять данные, на которые он указывает.
Тест:
class A {
public:
A(const int x) : x_(x) {}
void set_x(int x) { x_ = x; }
void set_x2(const int x) const {
const_cast<A&>(*this).set_x(x);
}
int x_;
};
int main() {
A a(10);
a.set_x2(100);
}