Для работы с сигнал/слотами посмотрите boost::signals.
P_>И последнее, уж не помню зачем, но понадобилося мне предикат, который просто возвращал бы обратно переданное ему значение.
Не совсем понятно — предикат возвращает булево значение, а вам повидимому надо биднить что-угодно. Такую штуку легче написать самому, а из реализованного — boost::phoenix::val.