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