[ glorius @ 26.05.2016. 18:15 ] @
Prilicno mi je jasno kako rade spomenute funkcionalnosti boost lib-a i njihova medjusobna saradnja ali ce me mozda sledece pitanje demantovati :) Naidjoh skoro na parcence koda koje izgleda slicno sledecem: Code: bool getState() { return true; } void main() { boost::function<bool()> func = !boost::bind(getState); std::cout << func(); } Impresivno (bar za mene) rezultat je false. Nije mi jasno kako boost::function uspeva da capture-uje i operator ! kada smesta funktor generisan binderom za delayed call. Bilo bi mi jasno da se koristi funkc. kompozicija sa std::not1 npr ali za ovo nisam nasao objasnjenje kako funkcionise. Razmisljao sam i o analogiji sa smestanjem lambda expressiona u boost::function... Na primer: Code: boost::function<bool(bool)> func = !_1; std::cout << func(true); Ovo mi je jasno ali verzija sa bind nije. |