# [2021.06.01] CMake

I do not remember I ever built a complex C++ project. Or, even if I
did so, I used an IDE as a magic box. So, I never understand all the
intricacies of linking. The discovery of the day is that all methods
in Python and Java are `virtual`. Also, careless and/or inconsistent
usage of the `using namespace` directive can lead to unintended
ambiguity. Moreover, word to the wise: 'The using-directive exists
for legacy C++ code and to ease the transition to namespaces, but you
probably should not use it regularly, at least not in your new C++
code.'
(https://isocpp.org/wiki/faq/coding-standards#using-namespace-std).
So, I am dealing with legacy C++ code - how amazing! I do love
working with piles of legacy code. Also, giving the name `Allocator`
to your class should be damned, I wholeheartedly believe. I have no
idea why developers of `LibTorch` did that.