| OLD | NEW |
| 1 /* | 1 /* |
| 2 | 2 |
| 3 Copyright (C) 2010 Apple Inc. All rights reserved. | 3 Copyright (C) 2010 Apple Inc. All rights reserved. |
| 4 | 4 |
| 5 Redistribution and use in source and binary forms, with or without | 5 Redistribution and use in source and binary forms, with or without |
| 6 modification, are permitted provided that the following conditions | 6 modification, are permitted provided that the following conditions |
| 7 are met: | 7 are met: |
| 8 1. Redistributions of source code must retain the above copyright | 8 1. Redistributions of source code must retain the above copyright |
| 9 notice, this list of conditions and the following disclaimer. | 9 notice, this list of conditions and the following disclaimer. |
| 10 2. Redistributions in binary form must reproduce the above copyright | 10 2. Redistributions in binary form must reproduce the above copyright |
| 11 notice, this list of conditions and the following disclaimer in the | 11 notice, this list of conditions and the following disclaimer in the |
| 12 documentation and/or other materials provided with the distribution. | 12 documentation and/or other materials provided with the distribution. |
| 13 | 13 |
| 14 THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY | 14 THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY |
| 15 EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 15 EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
| 16 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 16 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| 17 DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY | 17 DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY |
| 18 DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 18 DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
| 19 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 19 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
| 20 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | 20 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON |
| 21 ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 21 ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 22 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 22 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
| 23 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 23 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 24 | 24 |
| 25 */ | 25 */ |
| 26 | 26 |
| 27 #ifndef NullPtr_h | 27 #ifndef NullPtr_h |
| 28 #define NullPtr_h | 28 #define NullPtr_h |
| 29 | 29 |
| 30 // For compilers and standard libraries that do not yet include it, this adds th
e | |
| 31 // nullptr_t type and nullptr object. They are defined in the same namespaces th
ey | |
| 32 // would be in compiler and library that had the support. | |
| 33 | |
| 34 #if COMPILER_SUPPORTS(CXX_NULLPTR) || defined(_LIBCPP_VERSION) | |
| 35 | |
| 36 // libstdc++ supports nullptr_t starting with gcc 4.6. STLport doesn't define it
. | |
| 37 #if (defined(__GLIBCXX__) && __GLIBCXX__ < 20110325) || defined(_STLPORT_VERSION
) | |
| 38 namespace std { | |
| 39 typedef decltype(nullptr) nullptr_t; | |
| 40 } | |
| 41 #endif | |
| 42 | |
| 43 #else | |
| 44 | |
| 45 #include "wtf/WTFExport.h" | |
| 46 | |
| 47 namespace std { | |
| 48 class nullptr_t { | |
| 49 public: | |
| 50 // Required in order to create const nullptr_t objects without an | |
| 51 // explicit initializer in GCC 4.5, a la: | |
| 52 // | |
| 53 // const std::nullptr_t nullptr; | |
| 54 nullptr_t() { } | |
| 55 | |
| 56 // Make nullptr convertible to any pointer type. | |
| 57 template<typename T> operator T*() const { return 0; } | |
| 58 // Make nullptr convertible to any member pointer type. | |
| 59 template<typename C, typename T> operator T C::*() { return 0; } | |
| 60 private: | |
| 61 // Do not allow taking the address of nullptr. | |
| 62 void operator&(); | |
| 63 }; | |
| 64 } | |
| 65 WTF_EXPORT extern const std::nullptr_t nullptr; | |
| 66 | |
| 67 #endif | |
| 68 | |
| 69 #define WTF_DISALLOW_CONSTRUCTION_FROM_ZERO(ClassName) \ | 30 #define WTF_DISALLOW_CONSTRUCTION_FROM_ZERO(ClassName) \ |
| 70 private: \ | 31 private: \ |
| 71 ClassName(int) = delete | 32 ClassName(int) = delete |
| 72 #define WTF_DISALLOW_ZERO_ASSIGNMENT(ClassName) \ | 33 #define WTF_DISALLOW_ZERO_ASSIGNMENT(ClassName) \ |
| 73 private: \ | 34 private: \ |
| 74 ClassName& operator=(int) = delete | 35 ClassName& operator=(int) = delete |
| 75 | 36 |
| 76 #endif | 37 #endif |
| OLD | NEW |