Meditation, The Art of Exploitation

Thinking? At last I have discovered it--thought; this alone is inseparable from me. I am, I exist--that is certain. But for how long? For as long as I am thinking. For it could be, that were I totally to cease from thinking, I should totally cease to exist....I am, then, in the strict sense only a thing that thinks.

Friday, July 20, 2007

Comparison of C++ postgresql database interface library

libpq++, best performance in terms of raw speed, but the interface is more C-ish than C++-ish

libpqxx, very modern C++ interface, but as of version 2.6.9, it has serious threading issue

soci, somewhat strange interface design, supports multiple database serrvers, good performance.

Thursday, July 05, 2007

C++ static template class member variable

C++ can be wierd. A non-template class member variable when declared static needs to be instantiated in a link unit e.g.

struct A{
static int a;
};

int A::a;

For a template class, it can get wierd:
template < typename T>
struct A{
static int a;
};

template < typname T>
int A< T>::a;