A DumbedDownPointer is essentially a SmartPointer that, rather than doing more than, or providing additional semantics over, ordinary pointers, instead "dumbs them down", by the following:
Disallowing PointerArithmetic. Operators +, -, ++, --, +=, -=, , <, <=, >, >= are typically not defined. Operator  might be defined, but is only useful when the argument is zero.
Ensuring a safe default initialization. Any DumbedDownPointer which isn't otherwise initialized in its declaration is initialized to NULL. Ordinary pointers, if not explicitly initialized, are undefined and thus unsafe to use until initialized.