Confirmed users
657
edits
Line 144: | Line 144: | ||
The safety properties that we desire are inherently incompatible with two main classes of C++ features: | The safety properties that we desire are inherently incompatible with two main classes of C++ features: | ||
* Unchecked references to objects. These are C++ pointers and references to objects (not primitive types). Since the language doesn't offer a way to tag them with ownership information, the usage of them in Safe C++ is completely prohibited. | * Unchecked references to objects. These are C++ pointers and references to objects (not primitive types). Since the language doesn't offer a way to tag them with ownership information, the usage of them in Safe C++ is completely prohibited. | ||
* Raw arrays of objects, again, since the language doesn't offer a way to tag them with ownership information. | |||
* Direct control over lifetimes. For obvious reasons, giving the programmer direct control over lifetimes goes against the goals of Safe C++. C++ keywords new, new[], delete and delete[] are completely prohibited in Safe C++ code. | * Direct control over lifetimes. For obvious reasons, giving the programmer direct control over lifetimes goes against the goals of Safe C++. C++ keywords new, new[], delete and delete[] are completely prohibited in Safe C++ code. | ||