AZ
Size: a a a
AZ
CD
AZ
CD
CD
AZ
CD
CD
CD
CD
CD
CD
AZ
CD
using shape = variant<Square, Circle, Rectangle>потом человек-джун дописал
shape_square = visit_variant(
[] (Square const& )
[] (Circle const& )
[] (Rectangle const& )
)
CD
CD
CD
struct shape_interface {
virtual void draw(context_type&) = 0;
};
template <typename Shape>
struct shape_impl : shape_interface {
Shape shape_;
void draw(context_type& context) override { shape_.draw(context); }
};
CD
CD
CD