General Kind C++