Some data types will be as much a part of your daily vocabulary as basic types, such as int or double. You’ll use them everywhere, all the time: in your function signatures, in your algorithms, as member variables of your classes (see later), and so on. We call such types vocabulary types. In modern C++, they are one of the cornerstones of understandable, maintainable, and safe code.
In fact, you already know some vocabulary types, including std::unique_ptr<> ...