use std::conditional instead of topologic::conditional, since we started to adopt the new C++11 features rather aggressively anyway