C++ Genericity Multiple implementations behind a single class without virtual ? Template specialization Specialize at compile time then define which one to use at runtime ? Cmake Git submodule init How to do it clean ? Tests Set env does not works. why ?