
On Friday 18 May 2007 23:27:21 Gottlob Frege wrote:
On 5/18/07, Ulrich Eckhardt <doomster@knuut.de> wrote:
Attached is a file. Copy it to the boost/signals folder and include it from exactly one translation unit of your program. All it does is make an on-demand compiled, statically linked library.
<link_inplace.hpp>
That's an interesting solution. Better than having boost optionally include code into the headers via #ifdefs (which I've heard suggested). IMO, at least.
Now, why not just make it a cpp that I build directly (or drop into my IDE project directly) instead of an hpp that I need to #include into a (probably) otherwise blank cpp of my own?
It's a controversial thing. For one thing, I'd like to name it link_inplace.cpp, but it might feel strange to some people to #include a .cpp file. On the other hand, including code by including a .hpp file and only being allowed to do that once is also strange. I'm also thinking about naming it compile_inplace.cpp/hpp, I'm not yet sure how to name this technique. Now, as far as including it in your project goes, I'd say go ahead. I guess naming it .cpp would make that easier though... point is noted. However: if you create a dedicated file that only includes it that would be even better. The reason is that this file doesn't have to be adapted if you switch to a new Boost version, all you need to do is switch the include path you give your compiler. Uli