
I was on a long train ride today so I started putting together an initial code base for Transaction. and as always, the most obvious problems were overlooked: we have to find another name for the library/namespace, or for the transaction class: namespace transaction{ class transaction; } using namespace boost; using namespace transaction; int main(){ boost::transaction::transaction tx; //namespace spec required } I don't think this is acceptable, and I'd like to keep the name "transaction" for the transaction class. I've seen someone use "transaction_scope" instead but I don't think that makes sense. any ideas for a namespace? also, would you like to make the usage of the transaction library by the individual libraries transparent to user wrt to namespaces? e.g. namespace persistent{ using namespace transaction; } namespace stldb{ using namespace transaction; } on the one hand it's easier for the user. a beginner using only one of the transactional libraries isn't bothered with only one simple class being part of another library, from his perspective. downsides on the other hand: - headers. you'd have boost/persistent/transaction.hpp, boost/stldb/transaction.hpp, ... and all they'd do is include boost/transaction/transaction.hpp and a "using" declaration. - it might be confusing that is_same<persistent::transaction,stldb::transaction>::value==true