| 158 | |
| 159 | --------------------------------------------------------------------------------------------------- |
| 160 | == Boost.Bitfield == |
| 161 | * '''Author(s):''' Emile Cormier, Vicente J. Botet Escribá |
| 162 | * '''Version:''' 0.2 |
| 163 | * '''State:''' Ready |
| 164 | * '''Inclusion date:''' 2009 May 4 |
| 165 | * '''Last upload:''' 2009 October 15 |
| 166 | * '''Depends on:''' [#Boost.Endian Endian] |
| 167 | * '''Links:''' [http://www.boostpro.com/vault/index.php?action=downloadfile&filename=bitfield.zip&directory=Portability&PHPSESSID=96307fee8086c06036af42fae790b449 Boost Vault][http://svn.boost.org/svn/boost/sandbox/bitfield Boost Sandbox][http://svn.boost.org/svn/boost/sandbox/bitfield/libs/integer/doc/index.html Documentation] |
| 168 | * '''Categories:''' Endian Portability, Integers |
| 169 | * '''Description:'''Portable bitfields traits |
| 170 | * a generic bitfield traits class providing generic getter and setter methods. |
| 171 | * a BOOST_BITFIELD_DCL macro making easier the definition of the bitfield traits and the bitfield getter and setter functions. |
| 172 | |
| 173 | {{{ |
| 174 | #!cpp |
| 175 | struct X { |
| 176 | typedef boost::ubig_32 storage_type; |
| 177 | storage_type d0; |
| 178 | typedef unsigned int value_type; |
| 179 | BOOST_BITFIELD_DCL(storage_type, d0, unsigned int, d00, 0, 10); |
| 180 | BOOST_BITFIELD_DCL(storage_type, d0, unsigned int, d01, 11, 31); |
| 181 | }; |
| 182 | }}} |
| 183 | |
| 184 | |
| 495 | |
| 496 | --------------------------------------------------------------------------------------------------- |
| 497 | == Boost.!InterThreads == |
| 498 | * '''Author(s):''' Vicente J. Botet Escribá |
| 499 | * '''Version:''' 0.1.3 |
| 500 | * '''State:''' Not ready. Needs to cleanup |
| 501 | * '''Last upload:''' 2009 April 02 |
| 502 | * '''Links:''' [http://www.boostpro.com/vault/index.php?action=downloadfile&filename=interthreads.zip&directory=Concurrent%20Programming& Boost Vault] [http://svn.boost.org/svn/boost/sandbox/interthreads Boost Sandbox] [http://svn.boost.org/svn/boost/sandbox/interthreads/libs/interthreads/doc/index.html Documentation] |
| 503 | * '''Categories:''' [#ConcurrentProgramming Concurrent Programming] |
| 504 | * '''Description:''' Boost.!InterThreads extends Boost.Threads adding some features: |
| 505 | * thread decorator: thread_decorator allows to define setup/cleanup functions which will be called only once by thread: setup before the thread function and cleanup at thread exit. |
| 506 | * thread_decorator can now decorate a nullary function in addition to a callable function |
| 507 | * thread specific shared pointer: this is an extension of the thread_specific_ptr providing access to this thread specific context from other threads. As it is shared the stored pointer is a shared_ptr instead of a raw one. |
| 508 | * thread keep alive mechanism: this mechanism allows to detect threads that do not prove that they are alive by calling to the keep_alive_point regularly. When a thread is declared dead a user provided function is called, which by default will abort the program. |
| 509 | * thread tuple: defines a thread group where the number of threads is know statically and the threads are created at construction time. |
| 510 | * set_once: a synchronizer that allows to set a variable only once, notifying to the variable value to whatever is waiting for that. |
| 511 | * thread_tuple_once: an extension of the boost::thread_tuple which allows to join the thread finishing the first, using for that the set_once synchronizer. |
| 512 | * thread_group_once: an extension of the boost::thread_group which allows to join the thread finishing the first, using for that the set_once synchronizer. |
| 513 | |
| 514 | thread_decorator and thread_specific_shared_ptr are based on the original implementation of threadalert written by Roland Schwarz. |
| 515 | |
1003 | | --------------------------------------------------------------------------------------------------- |
1004 | | == Boost.!VariadicMacrosData == |
1005 | | * '''Author(s):''' Edward Diener |
1006 | | * '''Version:''' 1.3 |
1007 | | * '''State:''' |
1008 | | * '''Last upload:''' Feb 6, 2011 |
1009 | | * '''Links:''' [http://svn.boost.org/svn/boost/sandbox/variadic_macro_data Boost Sandbox] |
1010 | | * '''Categories:''' [#PreprocessorMetaprogramming Preprocessor Metaprogramming] |
1011 | | * '''Description:''' The variadic macro data library, or VMD for short, is a library of macros which provide important functionality for variadic macros as well as integrating variadic macros with the Boost preprocessor library ( Boost PP ). It integrates with Boost PP without changing the latter library in any way. |
1012 | | |
1013 | | The functionality of the library may be summed up as: |
1014 | | |
1015 | | 1. Providing the means to extract any single token from the comma-separated data which makes up variadic macro data, as well as to calculate the number of tokens. |
1016 | | 2. Convert variadic macro data to and from Boost PP data types. |
1017 | | 3. Enhance the tuple functionality of Boost PP by providing a means of calculating the size of a tuple as well as by providing equivalent macros to Boost PP tuple macros which do not require the size of the tuple to be explicitly passed. |