C++ "Dependent type" library