Analysis of Data Types

In this discussion, I attempt to isolate data types from other C++ types. The C++ language contains several built-in primitive data types that include various sizes of integer and floating point objects. These types are fundamental to the language and are the foundation upon which every C++ program is built. However, these built-in types are constrained and bound to the address space occupied by the C++ program. This allows the language to exploit addressing and the native capabilities of the processor. Addresses are treated very much like data from the machine point-of-view.

When information is moved from one address space to another, it becomes necessary to carefully distinguish address/location information from value information.

More generally, data can be copied between address spaces. When this is done, absolute location/address information becomes useless in the new address space context. As a result,

I believe there is a certain class of C++  constructs that I will call a Data Manipulator. Data manipulators have the following characteristics:

The impact of these constraints in terms of C++ are: