| Здравствуйте, Ароан, Вы писали: PC>>Нет нельзя. Т.к. ты уже используешь буст вместо написания велосипеда можешь использовать http://www.boost.org/boost/lambda/construct.hpp (в хэдере ничего лишнего из boost.lambda). А>Следующий код выдает ошибку 'result_type' : is not a member of 'boost::lambda::constructor<T>': А>Что я сделал не так? 1. Вместо надо 2. int main() 3. Открываем http://www.boost.org/libs/bind/bind.html#with_function_objects и видим, что для объектов надо явно указывать возвращаемый тип: или на старых компиляторах так: 4. Чуть ниже там написано — эту операцию можно не производить, если есть result_type. Но его почему-то нет в lambda::constructor<T>. Это определенно баг, и я обязательно извещу разработчиков буста об этом. А пока в этот шаблон класса можно добавить строку typedef T result_type; тогда можно будет писать так: как ты и хотел. В результате код станет таким: P.S. В исходном варианте код работал правильно лишь для строк длиной 4 (на Win-платформе). т.к. sizeof(T *) == 4. |