#161 closed fixme (done)
cleanup use of boost::function include
| Reported by: | Ichthyostega | Owned by: | |
|---|---|---|---|
| Priority: | lesser | Milestone: | 2beta |
| Component: | lumiera | Keywords: | cleanup |
| Sub Tickets: | Parent Tickets: |
Description (last modified by )
boost::function got included into the TR1 (technical report 1) for the upcoming C++0x standard and thus can be expected to be an important building block of the emerging new standard library.
At places, we still include this header as <boost/functon.hpp> and identify the type as boost::function. We should convert all uses into including <functional> and using std::tr1::function and std::tr1::bind
This is a trivial task for a programmer assustomed with this library, but be warned that you will have to face very wired compiler messages ;-) in getting this to work
Change history (6)
comment:1 by , at 2009-06-18T17:46:02Z
| blocking: | → 163 |
|---|
comment:2 by , at 2009-07-19T03:23:16Z
| blocking: | 163 |
|---|
comment:3 by , at 2009-07-19T03:26:44Z
| Description: | modified (diff) |
|---|---|
| Resolution: | → done |
| Status: | new → closed |
comment:4 by , at 2009-07-19T03:47:21Z
| Component: | smallTasks → lumiera |
|---|
comment:5 by , at 2009-07-19T23:34:20Z
just to add this information somewhere...
Debian/Lenny is our reference platform; thus for now we rely on boost 1.34 (current is 1.38). The documentation for boost.TR1 states, that the includes should be either <boost/tr1/XXXX.hpp>, or (if you deliberately put INC/boost/tr1 into the include path) it should be <XXXX>. Unfortionately this doesn't work for us, seemingly caused by an bug which is "fixed in current SVN" (yes, we all know how developers feel...).
Surprisingly though, #include <tr1/XXXX> works in the default configuration. I have not the slightest inclination to find out why or what wired mixture of glibc++ and boost we get by this, as long as it works....
comment:6 by , at 2009-07-31T15:46:14Z
| Keywords: | cleanup added |
|---|

we got increasingly problems with ambiguous or unresolvable placeholders. I could track this down to boost::argument<N> being picked up by ADL, which was due to sometimes using boost::function and sometimes std::tr1::function....