Do not contain Grid.cpp.
Test with C++20 with clang++-12.
$ clang++-12 -lstdc++ -std=c++20 main.cpp Grid.hpp
I was referring to contents of Professional C++
Chapter 12.
So I modify the example a little by myself.
Separate the C++ template Class declaration and implementation by hpp and cpp.
C++GPL-3.0