Sep. 29th, 2011

yigal_s: (Default)
решил тут немножко размяться boost-ом.

Забавные там решения применяются. Например, объекту "функтор" можно присвоить (в частности) объект произвольного типа, имеющего оператор "круглые скобки" для вызова функции. При этом не требуется, чтобы этот объект наследовал какой-то стандартный интерфейс или чтобы этот оператор "круглые скобки" был виртуальной функцией. И... всё вызывается как надо.

Вообще, я себе чуть мозги не поломал, пока разглядел, где они там делают аллокацию памяти. Потому как с виду всё организовано так, будто они работают со статическими типами и всё кладут на стек, что в принципе невозможно. Я уже почти-почти поверил, что в boost и это возможно, когда наконец-то наткнулся на вызов new.