struct sC { bool Is() const { return true; } }; struct sE { sC* g() { static sC c; return &c; } //sC*& g() { static sC c; return &c; } }; int main(void) { sE ee; boost::bind(&sC::Is, _1)(ee.g()); // error } Вот такая вот байда. А если строку в sE раскоментить - то все вэри вэл. почему так странно - разъясните!?