The command-line-argument library has a callback function 'notifier' used like this: po::wvaluestd::wstring()->notifier(&foo) If I write void foo (const std::wstring& s) { C::bar(s); } it works fine. wstring and void are the template arguments to the function object. Now if I write notifier(&C::bar) instead, I get a huge spiel of compiler errors. Yet, from the body of foo you can see that s can be implicitly converted to the type of bar's argument (const boost::filesystem::wpath&) and the return type is also void. I thought that generalized functions objects pretty much worked that if you can write the call in normal code, it makes the correct wrapper to do that. What am I missing? --John TradeStation Group, Inc. is a publicly-traded holding company (NASDAQ GS: TRAD) of three operating subsidiaries, TradeStation Securities, Inc. (Member NYSE, FINRA, SIPC and NFA), TradeStation Technologies, Inc., a trading software and subscription company, and TradeStation Europe Limited, a United Kingdom, FSA-authorized introducing brokerage firm. None of these companies provides trading or investment advice, recommendations or endorsements of any kind. The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any computer.