Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int* x = nullptr;
- myclass* obj = nullptr;
- template <class T>
- class ptr {
- T* p_;
- public:
- ptr(T* p) : p_(p) {}
- template <class U>
- ptr(U* u) : p_(dynamic_cast<T*>(u)) { }
- // Without this ptr<T> p(NULL) would be ambiguous
- ptr(int null) : p_(NULL) { assert(null == NULL); }
- };
- ptr(std::nullptr_t) : p_(nullptr) { }
- pointer-literal:
- nullptr
- >>> None = 5
- File "<stdin>", line 1
- SyntaxError: assignment to None
- >>> type(None)
- <type 'NoneType'>
- #include <iostream>
- struct B {};
- struct A
- {
- operator B*() {return 0;}
- operator bool() {return true;}
- };
- int main()
- {
- A a;
- B* pb = 0;
- typedef void* null_ptr_t;
- null_ptr_t null = 0;
- std::cout << "(a == pb): " << (a == pb) << std::endl;
- std::cout << "(a == 0): " << (a == 0) << std::endl; // no warning
- std::cout << "(a == NULL): " << (a == NULL) << std::endl; // warns sometimes
- std::cout << "(a == null): " << (a == null) << std::endl;
- }
- (a == pb): 1
- (a == 0): 0
- (a == NULL): 0
- (a == null): 1
- void f(int);
- void f(char*);
- void g()
- {
- f(0); //calls f(int)
- }
- void g()
- {
- f(nullptr); //calls f(char*)
- }
Add Comment
Please, Sign In to add comment