namespace.cpp only contains static assertions and because of this does not expose any symbols. Because of this, the following link warning is reported on Windows:
namespace.obj : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library
These static assertions should be folded in the header and the .cpp file removed.