
Boost Fall Review Schedule - version 1.0 Contact Tom Brinkman at reportbase@gmail.com to request a review, to make updates to this document or to volunteer to be a review manager. Review Queue as of August 14, 2005. Not in any particular: 1. xpressive - Eric Niebler 2. logging - John Torjo 3. singleton - Jason Hise (new review needed) 4. function types - Tobias Schwinger (mini post-review needed) 5. output formatters - Reece Dunn (new review needed) 6. policy pointer - David B. Held 7. fixed strings - Reece Dunn 8. intrusive - Olaf Krzikalla 9. interfaces - Jonathan Turkanis Other Libraries: 10. factory - Federico Stella f.stella@flashnet.it 11. TR1 1. xpressive - Author: Eric Niebler eric@boost-consulting.com> Review Manager: needed Download: http://boost-sandbox.sf.net/vault/index.php?directory=eric_niebler Docs: http://boost-sandbox.sf.net/libs/xpressive Review Date: to be confirmed xpressive is a TR1 regex work-alike that also accepts regexes as expression templates and lets regexes nest and call each other recursively. Significant changes since 0.9.3 - c_regex_traits to wrap the global C locale - null_regex_traits for searching non-char data - doc and test improvements - bugs in static regexes and Unicode support squashed You can consider this the xpressive 1.0 release candidate. All that remains is to add more tests and documentation, and perhaps a tweak to the traits interface. 2. logging Author - John Torjo john@torjo.com Review Manager - Hartmut.Kaiser Hartmut.Kaiser@gmail.com Download: http://torjo.com/code/logging.zip Docs: http://torjo.com/ The Boost Log Library is a small library, who: * makes it very easy to declare/define new logs * allows you very simple access to logs * allows for log hierarchies, and for modifying log hierarchies * allows for easy and efficient enabling/disabling of logs/log hierarchies * allows for easy manipulation of log behaviors (the log's destination(s) and/or adjusting the original message) * is thread-safe Using the library in code is easy and straightforward: int i = 1, j = 2, k = 3; BOOST_LOG(app) << "testing " << i << '-' << j << '-' << k << std::endl; BOOST_LOG(dbg) << "this is a debug message, i=" << i << std::endl; BOOST_LOG(info) << "I just wanted to tell you something...."; Recent Additions: - can be compiled as a static/dynamic runtime (works as a DLL as well) - removed dependency on boost_thread Note: I did not test this on Unix, but it should work. If anybody can take a look at detail/ts_posix.hpp, I'd appreciate it. - solved other small issues, based on feedback - slightly improved documentation 3) Singleton Author - Jason Hise chaos@ezequal.com Review Manager - Needed Download: http://tinyurl.com/6qvrd (old version from previous review) Docs: http://tinyurl.com/6qvrd The singleton library provides multiple powerful methods of controlling the lifetimes of global resources. Client code can choose among the many provided methods of creation, or can easily write new creators for specialized initialization needs. Client code can additionally control precisely when a singleton instance is automatically created and destroyed, can create and destroy singleton instances explicitly any number of times, and can set up dependencies between singletons in an easy and natural way. 4) Function Types Author - Tobias Schwinger tschwinger@neoscientists.org Review Manager - John Maddock john@johnmaddock.co.uk Download: http://tinyurl.com/4oe7q (old version - from previous review) Docs: http://tinyurl.com/4oe7q This library provides a metaprogramming facility to classify, decompose and synthesize function-, function pointer-, function reference- and member function pointer types. For the purpose of this documentation, these types are collectively referred to as function types (this differs from the standard definition and redefines the term from a programmer's perspective to refer to the most common types that involve functions). The classes introduced by this library shall conform to the concepts of the Boost Metaprogramming library (MPL). The Function Types library enables the user to: * test an arbitrary type for being a function type of specified kind, * inspect properties of function types, * view and modify sub types of an encapsulated function type with MPL Sequence operations, and * synthesize function types. This library supports variadic functions and can be configured to support non-default calling conventions. This library was reviewed June 2005 and was accepted pending a mini post-review. 5. Output formatters Author - Reece Dunn msclrhd@hotmail.com Review Manager - Needed Download: Docs: This library was reviewed september 11, 2005. It requires a second full review. 6. Policy Pointer Author - David B. Held dheld@codelogicconsulting.com Review Manager - Gennadiy gennadiy.rozental@thomson.com Download: Boost Sandbox under policy_ptr Docs: Boost Sandbox under policy_ptr Smart pointers are used to automate memory management by handling the deletion of dynamically allcoated objects (and other resources). They assist in ensuring program correctness, exception safety, and memory integrity. Policy Pointer is a policy-based smart pointer framework designed to accomodate the large number of smart pointer designs. Through the use of policy classes, virtually any smart pointer type can be constructed within this framework. This library is a Boostification of the original Loki::SmartPtr type with significant modifications. 7. Fixed Strings Author - Reece Dunn msclrhd@hotmail.com Review Manager - Beman Dawes bdawes@acm.org Download: boosts-sandbox/boost/fixed_string Docs: boosts-sandbox/boost/fixed_string The fixed string library provides buffer overrun protection for static sized strings (char s[ n ]). It provides a C-style string interface for compatibility with C code (for example, porting a C program to C++). There is also a std::string-style interface using a class based on flex_string by Andre Alexandrescu with a few limitations due to the non-resizable nature of the class. 8. Intrusive Author - Olaf Krzikalla krzikalla@gmx.de Review Manager - needed Download: http://people.freenet.de/turtle++/intrusive.zip Docs: http://people.freenet.de/turtle++/intrusive.zip While intrusive containers were and are widely used in C, they became more and more forgotten in the C++-world due to the presence of the standard containers, which don't support intrusive techniques. Boost.Intrusive not only reintroduces this technique to C++, but also encapsulates the implementation in STL-like interfaces. Hence anyone familiar with standard containers can use intrusive containers with ease. 9. Interfaces Author - Jonathan Turkanis technews@kangaroologic.com Review Manager - needed Download: http://www.kangaroologic.com/interfaces Docs: http://www.kangaroologic.com/interfaces "Boost.Interfaces provides a macro-based Interface Definition Language (IDL) which can be used to define C++ class types called interfaces. An interface is a lightweight value type associated with a set of named function signatures. An interface instance can be bound at runtime to any object which implements the interface, i.e., to any object of a type with accessible non-static member functions having the same name and signature as the set of functions associated with the interface. The functions of the bound object can then be invoked through the interface instance using the 'dot' operator. Binding is completely non-intrusive: the object's type need not declare any virtual functions or derive from any particluar base class. "Current applications of Boost.Interfaces include: * Non-intrusive dynamic polymorphism — interfaces can often be used in place of abstract base classes, and are sometimes much faster (see Performance). * Dynamic inheritance — allows function calls to be forwarded automatically to an object specified at runtime (see Delegation). * Smart Interface Pointers — smart pointers which can manage the lifetime of any object whose type implements a given interface. * Smart References — like smart interface pointers, but the managed object is accessed using the "dot" operator."