Opened 13 years ago
Closed 12 years ago
#3705 closed Feature Requests (wontfix)
Boost.Function FAQ
Reported by: | anonymous | Owned by: | Douglas Gregor |
---|---|---|---|
Milestone: | Boost 1.42.0 | Component: | function |
Version: | Boost 1.41.0 | Severity: | Problem |
Keywords: | Cc: |
Description
Peter Dimov
On Dec 2, 7:18 am, Sebastian Hauer <ha...@…> wrote: Hi, Recently I had the need for an efficient polymorphic function wrapper (aka delegate), so I looked at a few possible options such as boost::function and FastDelegate. I also came across tr1::function which I was blissfully unaware of until now, considering that the original proposal was from late 2002 (see:http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2002/n1402.html). While reading the proposal I noticed that a tr1::function can throw a bad_function_call exception if no target was assigned. I was just wondering for the rationale behind this design decision. In my opinion the fact that it throws goes against C++'s notion of "you only pay for what you use". I'm interested in hearing what your thoughts are on this.
This behavior doesn't need to impose a cost. An std::function (it's officially in C++0x) that hasn't been assigned a target may internally store a target function that throws bad_function_call. It need not test on every call (even though the test wouldn't impose much overhead compared to the indirect call that follows.)
Please add this to Boost.Function FAQ.
Change History (3)
comment:1 by , 13 years ago
Component: | Documentation → function |
---|
comment:2 by , 13 years ago
comment:3 by , 12 years ago
Resolution: | → wontfix |
---|---|
Status: | new → closed |
I don't think that this would be a good idea to add to the FAQ, given that boost::function does not work this way.