From Just in Time
Boost.Extension & Boost.Reflection
Problems with shared libraries
- differences in semantics of open, close, getprocaddr
- name mangling, extern "C" losing type safety
shared_library m("my_module_name"); m.open(); m.get<int(float)>(function_name")(5.0f); m.close();
- docs in boost head/tools
Installing it on windows:
- quickbook uses boostbook uses docbook.
- problem with latest xslt: do not download latest version (may have been fixed). Use 1.66.1 version. Not listed on sourceforge. Just change url while downloading from sf.
- Eric's docs demonstrate how to use doxygen
import doxygen import quickbook; doxygen autodoc : [ glob ../../../boost/xpresive/*.hpp] : <doxygen:param>X=Y ; xml xpressive : xpressive.qbk ; boostbook standalone : xpressive :
- boostdocs mailinglist discusses how to get rid of boost-headers.
- URLs to code can be svn urls.
- Intel TBB as a starting point 
[www.boost-consulting.com/vault/ file vault]
range_ex has versions of stl algorithms that accept ranges. return type can be customized (range, iterator, what range).
Explore, container printing
It took pretty much in the neighborhood of 90 minutes. Amazing, I thought it would be about 45. Good thing it was scheduled for 90 minutes.
Audience participation was great. Benign and very constructive.
boost serialization: A Hands on Tutorial
- load_construct_data & save_construct_dat
- for types that have no default constructor
- serialize classes that are outputstreamable and inputstreamable (to C++ streams)
- use load_construct_data etc
- ...or use BOOST_SERIALIZATION_SPLIT_FREE om load/save te splitsen.
- BOOST_SERIALIZATION_SPLIT_MEMBER() in de class scope
bjam --with-serialization --layout-system variant=debug link=shared stage
optionally append -jN+1 (N = number of processors)
Building a mini-fusion with C++0x
- relation between run-time and compile-time: boost::fusion::xxx vs. boost::fusion::type_of<...>
edit distance/sequence alignment algos may be quite hot: dna sequencing.
Bjarne Stroustrup: A C++ library wish list
- what do we want
- What would I like
- Teaching C++
- What is "a system"
- A system for c++ Libraries
C++ libraries are small. About 25 GUI libraries, no interoperability. We do not have a system of interoperating libraries
TBB going in the right direction.
Problem: Those 'novices' that "knew everything" telling those that have never seen a line of code what to do.
Teach in a way that encourages hard work.
- fltk? (gui & graph)
- SFINAE in 2002
- use of preprocessor metaprogramming made implementation unreadable
- macro expansion trace
- interactive mode
- %= (auto rule operator)
- just like the semantic action [_val = _0] (Joel wrote "[_val = _1]")
- Peyton Jones
- "Scrap your boilerplate", "Scrap your boilerplate systematically" -paper
- barbed wire & bananas
- Ben Hanson created it
- In boost.spirit
- Merged, minimized DFAs, parse large sets of alternatives very effectively.
- multi_pass<> - iterator
- In Spirit2: tokenize_and_parse(...)
Planning BoostCon 2009
Dataflow Library (and the arts)
examples of dataflow frameworks
- Maxim sp
- GNU radio
Concepts: Components, Ports.
consumer ports are boost.function, producer ports are boost.signal operator>>=() used to connect components, e.g.:
producer >>= filter >>= consumer
- cppgui (Felipe Magno de Almeida)
- pin-based approach (Tobias Schwinger).
- flock of birds 6 dof 3d position
- AMELiA now open source (GPL)