aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/icu/include/unicode/char16ptr.h
diff options
context:
space:
mode:
authormcheshkov <mcheshkov@yandex-team.ru>2022-02-10 16:46:15 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:46:15 +0300
commite9d19cec64684c9c1e6b0c98297e5b895cf904fe (patch)
tree2768b1223e96a8a0610a93d18425d9647c1123c8 /contrib/libs/icu/include/unicode/char16ptr.h
parent60040c91ffe701a84689b2c6310ff845e65cff42 (diff)
downloadydb-e9d19cec64684c9c1e6b0c98297e5b895cf904fe.tar.gz
Restoring authorship annotation for <mcheshkov@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/libs/icu/include/unicode/char16ptr.h')
-rw-r--r--contrib/libs/icu/include/unicode/char16ptr.h626
1 files changed, 313 insertions, 313 deletions
diff --git a/contrib/libs/icu/include/unicode/char16ptr.h b/contrib/libs/icu/include/unicode/char16ptr.h
index c8a9ae6c35..3a7450cc2b 100644
--- a/contrib/libs/icu/include/unicode/char16ptr.h
+++ b/contrib/libs/icu/include/unicode/char16ptr.h
@@ -1,313 +1,313 @@
-// © 2017 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-
-// char16ptr.h
-// created: 2017feb28 Markus W. Scherer
-
-#ifndef __CHAR16PTR_H__
-#define __CHAR16PTR_H__
-
-#include "unicode/utypes.h"
-
-#if U_SHOW_CPLUSPLUS_API
-
-#include <cstddef>
-
-/**
- * \file
- * \brief C++ API: char16_t pointer wrappers with
- * implicit conversion from bit-compatible raw pointer types.
- * Also conversion functions from char16_t * to UChar * and OldUChar *.
- */
-
-U_NAMESPACE_BEGIN
-
-/**
- * \def U_ALIASING_BARRIER
- * Barrier for pointer anti-aliasing optimizations even across function boundaries.
- * @internal
- */
-#ifdef U_ALIASING_BARRIER
- // Use the predefined value.
-#elif (defined(__clang__) || defined(__GNUC__)) && U_PLATFORM != U_PF_BROWSER_NATIVE_CLIENT
-# define U_ALIASING_BARRIER(ptr) asm volatile("" : : "rm"(ptr) : "memory")
-#elif defined(U_IN_DOXYGEN)
-# define U_ALIASING_BARRIER(ptr)
-#endif
-
-/**
- * char16_t * wrapper with implicit conversion from distinct but bit-compatible pointer types.
- * @stable ICU 59
- */
-class U_COMMON_API Char16Ptr U_FINAL {
-public:
- /**
- * Copies the pointer.
- * @param p pointer
- * @stable ICU 59
- */
- inline Char16Ptr(char16_t *p);
-#if !U_CHAR16_IS_TYPEDEF
- /**
- * Converts the pointer to char16_t *.
- * @param p pointer to be converted
- * @stable ICU 59
- */
- inline Char16Ptr(uint16_t *p);
-#endif
-#if U_SIZEOF_WCHAR_T==2 || defined(U_IN_DOXYGEN)
- /**
- * Converts the pointer to char16_t *.
- * (Only defined if U_SIZEOF_WCHAR_T==2.)
- * @param p pointer to be converted
- * @stable ICU 59
- */
- inline Char16Ptr(wchar_t *p);
-#endif
- /**
- * nullptr constructor.
- * @param p nullptr
- * @stable ICU 59
- */
- inline Char16Ptr(std::nullptr_t p);
- /**
- * Destructor.
- * @stable ICU 59
- */
- inline ~Char16Ptr();
-
- /**
- * Pointer access.
- * @return the wrapped pointer
- * @stable ICU 59
- */
- inline char16_t *get() const;
- /**
- * char16_t pointer access via type conversion (e.g., static_cast).
- * @return the wrapped pointer
- * @stable ICU 59
- */
- inline operator char16_t *() const { return get(); }
-
-private:
- Char16Ptr() = delete;
-
-#ifdef U_ALIASING_BARRIER
- template<typename T> static char16_t *cast(T *t) {
- U_ALIASING_BARRIER(t);
- return reinterpret_cast<char16_t *>(t);
- }
-
- char16_t *p_;
-#else
- union {
- char16_t *cp;
- uint16_t *up;
- wchar_t *wp;
- } u_;
-#endif
-};
-
-/// \cond
-#ifdef U_ALIASING_BARRIER
-
-Char16Ptr::Char16Ptr(char16_t *p) : p_(p) {}
-#if !U_CHAR16_IS_TYPEDEF
-Char16Ptr::Char16Ptr(uint16_t *p) : p_(cast(p)) {}
-#endif
-#if U_SIZEOF_WCHAR_T==2
-Char16Ptr::Char16Ptr(wchar_t *p) : p_(cast(p)) {}
-#endif
-Char16Ptr::Char16Ptr(std::nullptr_t p) : p_(p) {}
-Char16Ptr::~Char16Ptr() {
- U_ALIASING_BARRIER(p_);
-}
-
-char16_t *Char16Ptr::get() const { return p_; }
-
-#else
-
-Char16Ptr::Char16Ptr(char16_t *p) { u_.cp = p; }
-#if !U_CHAR16_IS_TYPEDEF
-Char16Ptr::Char16Ptr(uint16_t *p) { u_.up = p; }
-#endif
-#if U_SIZEOF_WCHAR_T==2
-Char16Ptr::Char16Ptr(wchar_t *p) { u_.wp = p; }
-#endif
-Char16Ptr::Char16Ptr(std::nullptr_t p) { u_.cp = p; }
-Char16Ptr::~Char16Ptr() {}
-
-char16_t *Char16Ptr::get() const { return u_.cp; }
-
-#endif
-/// \endcond
-
-/**
- * const char16_t * wrapper with implicit conversion from distinct but bit-compatible pointer types.
- * @stable ICU 59
- */
-class U_COMMON_API ConstChar16Ptr U_FINAL {
-public:
- /**
- * Copies the pointer.
- * @param p pointer
- * @stable ICU 59
- */
- inline ConstChar16Ptr(const char16_t *p);
-#if !U_CHAR16_IS_TYPEDEF
- /**
- * Converts the pointer to char16_t *.
- * @param p pointer to be converted
- * @stable ICU 59
- */
- inline ConstChar16Ptr(const uint16_t *p);
-#endif
-#if U_SIZEOF_WCHAR_T==2 || defined(U_IN_DOXYGEN)
- /**
- * Converts the pointer to char16_t *.
- * (Only defined if U_SIZEOF_WCHAR_T==2.)
- * @param p pointer to be converted
- * @stable ICU 59
- */
- inline ConstChar16Ptr(const wchar_t *p);
-#endif
- /**
- * nullptr constructor.
- * @param p nullptr
- * @stable ICU 59
- */
- inline ConstChar16Ptr(const std::nullptr_t p);
-
- /**
- * Destructor.
- * @stable ICU 59
- */
- inline ~ConstChar16Ptr();
-
- /**
- * Pointer access.
- * @return the wrapped pointer
- * @stable ICU 59
- */
- inline const char16_t *get() const;
- /**
- * char16_t pointer access via type conversion (e.g., static_cast).
- * @return the wrapped pointer
- * @stable ICU 59
- */
- inline operator const char16_t *() const { return get(); }
-
-private:
- ConstChar16Ptr() = delete;
-
-#ifdef U_ALIASING_BARRIER
- template<typename T> static const char16_t *cast(const T *t) {
- U_ALIASING_BARRIER(t);
- return reinterpret_cast<const char16_t *>(t);
- }
-
- const char16_t *p_;
-#else
- union {
- const char16_t *cp;
- const uint16_t *up;
- const wchar_t *wp;
- } u_;
-#endif
-};
-
-/// \cond
-#ifdef U_ALIASING_BARRIER
-
-ConstChar16Ptr::ConstChar16Ptr(const char16_t *p) : p_(p) {}
-#if !U_CHAR16_IS_TYPEDEF
-ConstChar16Ptr::ConstChar16Ptr(const uint16_t *p) : p_(cast(p)) {}
-#endif
-#if U_SIZEOF_WCHAR_T==2
-ConstChar16Ptr::ConstChar16Ptr(const wchar_t *p) : p_(cast(p)) {}
-#endif
-ConstChar16Ptr::ConstChar16Ptr(const std::nullptr_t p) : p_(p) {}
-ConstChar16Ptr::~ConstChar16Ptr() {
- U_ALIASING_BARRIER(p_);
-}
-
-const char16_t *ConstChar16Ptr::get() const { return p_; }
-
-#else
-
-ConstChar16Ptr::ConstChar16Ptr(const char16_t *p) { u_.cp = p; }
-#if !U_CHAR16_IS_TYPEDEF
-ConstChar16Ptr::ConstChar16Ptr(const uint16_t *p) { u_.up = p; }
-#endif
-#if U_SIZEOF_WCHAR_T==2
-ConstChar16Ptr::ConstChar16Ptr(const wchar_t *p) { u_.wp = p; }
-#endif
-ConstChar16Ptr::ConstChar16Ptr(const std::nullptr_t p) { u_.cp = p; }
-ConstChar16Ptr::~ConstChar16Ptr() {}
-
-const char16_t *ConstChar16Ptr::get() const { return u_.cp; }
-
-#endif
-/// \endcond
-
-/**
- * Converts from const char16_t * to const UChar *.
- * Includes an aliasing barrier if available.
- * @param p pointer
- * @return p as const UChar *
- * @stable ICU 59
- */
-inline const UChar *toUCharPtr(const char16_t *p) {
-#ifdef U_ALIASING_BARRIER
- U_ALIASING_BARRIER(p);
-#endif
- return reinterpret_cast<const UChar *>(p);
-}
-
-/**
- * Converts from char16_t * to UChar *.
- * Includes an aliasing barrier if available.
- * @param p pointer
- * @return p as UChar *
- * @stable ICU 59
- */
-inline UChar *toUCharPtr(char16_t *p) {
-#ifdef U_ALIASING_BARRIER
- U_ALIASING_BARRIER(p);
-#endif
- return reinterpret_cast<UChar *>(p);
-}
-
-/**
- * Converts from const char16_t * to const OldUChar *.
- * Includes an aliasing barrier if available.
- * @param p pointer
- * @return p as const OldUChar *
- * @stable ICU 59
- */
-inline const OldUChar *toOldUCharPtr(const char16_t *p) {
-#ifdef U_ALIASING_BARRIER
- U_ALIASING_BARRIER(p);
-#endif
- return reinterpret_cast<const OldUChar *>(p);
-}
-
-/**
- * Converts from char16_t * to OldUChar *.
- * Includes an aliasing barrier if available.
- * @param p pointer
- * @return p as OldUChar *
- * @stable ICU 59
- */
-inline OldUChar *toOldUCharPtr(char16_t *p) {
-#ifdef U_ALIASING_BARRIER
- U_ALIASING_BARRIER(p);
-#endif
- return reinterpret_cast<OldUChar *>(p);
-}
-
-U_NAMESPACE_END
-
-#endif /* U_SHOW_CPLUSPLUS_API */
-
-#endif // __CHAR16PTR_H__
+// © 2017 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// char16ptr.h
+// created: 2017feb28 Markus W. Scherer
+
+#ifndef __CHAR16PTR_H__
+#define __CHAR16PTR_H__
+
+#include "unicode/utypes.h"
+
+#if U_SHOW_CPLUSPLUS_API
+
+#include <cstddef>
+
+/**
+ * \file
+ * \brief C++ API: char16_t pointer wrappers with
+ * implicit conversion from bit-compatible raw pointer types.
+ * Also conversion functions from char16_t * to UChar * and OldUChar *.
+ */
+
+U_NAMESPACE_BEGIN
+
+/**
+ * \def U_ALIASING_BARRIER
+ * Barrier for pointer anti-aliasing optimizations even across function boundaries.
+ * @internal
+ */
+#ifdef U_ALIASING_BARRIER
+ // Use the predefined value.
+#elif (defined(__clang__) || defined(__GNUC__)) && U_PLATFORM != U_PF_BROWSER_NATIVE_CLIENT
+# define U_ALIASING_BARRIER(ptr) asm volatile("" : : "rm"(ptr) : "memory")
+#elif defined(U_IN_DOXYGEN)
+# define U_ALIASING_BARRIER(ptr)
+#endif
+
+/**
+ * char16_t * wrapper with implicit conversion from distinct but bit-compatible pointer types.
+ * @stable ICU 59
+ */
+class U_COMMON_API Char16Ptr U_FINAL {
+public:
+ /**
+ * Copies the pointer.
+ * @param p pointer
+ * @stable ICU 59
+ */
+ inline Char16Ptr(char16_t *p);
+#if !U_CHAR16_IS_TYPEDEF
+ /**
+ * Converts the pointer to char16_t *.
+ * @param p pointer to be converted
+ * @stable ICU 59
+ */
+ inline Char16Ptr(uint16_t *p);
+#endif
+#if U_SIZEOF_WCHAR_T==2 || defined(U_IN_DOXYGEN)
+ /**
+ * Converts the pointer to char16_t *.
+ * (Only defined if U_SIZEOF_WCHAR_T==2.)
+ * @param p pointer to be converted
+ * @stable ICU 59
+ */
+ inline Char16Ptr(wchar_t *p);
+#endif
+ /**
+ * nullptr constructor.
+ * @param p nullptr
+ * @stable ICU 59
+ */
+ inline Char16Ptr(std::nullptr_t p);
+ /**
+ * Destructor.
+ * @stable ICU 59
+ */
+ inline ~Char16Ptr();
+
+ /**
+ * Pointer access.
+ * @return the wrapped pointer
+ * @stable ICU 59
+ */
+ inline char16_t *get() const;
+ /**
+ * char16_t pointer access via type conversion (e.g., static_cast).
+ * @return the wrapped pointer
+ * @stable ICU 59
+ */
+ inline operator char16_t *() const { return get(); }
+
+private:
+ Char16Ptr() = delete;
+
+#ifdef U_ALIASING_BARRIER
+ template<typename T> static char16_t *cast(T *t) {
+ U_ALIASING_BARRIER(t);
+ return reinterpret_cast<char16_t *>(t);
+ }
+
+ char16_t *p_;
+#else
+ union {
+ char16_t *cp;
+ uint16_t *up;
+ wchar_t *wp;
+ } u_;
+#endif
+};
+
+/// \cond
+#ifdef U_ALIASING_BARRIER
+
+Char16Ptr::Char16Ptr(char16_t *p) : p_(p) {}
+#if !U_CHAR16_IS_TYPEDEF
+Char16Ptr::Char16Ptr(uint16_t *p) : p_(cast(p)) {}
+#endif
+#if U_SIZEOF_WCHAR_T==2
+Char16Ptr::Char16Ptr(wchar_t *p) : p_(cast(p)) {}
+#endif
+Char16Ptr::Char16Ptr(std::nullptr_t p) : p_(p) {}
+Char16Ptr::~Char16Ptr() {
+ U_ALIASING_BARRIER(p_);
+}
+
+char16_t *Char16Ptr::get() const { return p_; }
+
+#else
+
+Char16Ptr::Char16Ptr(char16_t *p) { u_.cp = p; }
+#if !U_CHAR16_IS_TYPEDEF
+Char16Ptr::Char16Ptr(uint16_t *p) { u_.up = p; }
+#endif
+#if U_SIZEOF_WCHAR_T==2
+Char16Ptr::Char16Ptr(wchar_t *p) { u_.wp = p; }
+#endif
+Char16Ptr::Char16Ptr(std::nullptr_t p) { u_.cp = p; }
+Char16Ptr::~Char16Ptr() {}
+
+char16_t *Char16Ptr::get() const { return u_.cp; }
+
+#endif
+/// \endcond
+
+/**
+ * const char16_t * wrapper with implicit conversion from distinct but bit-compatible pointer types.
+ * @stable ICU 59
+ */
+class U_COMMON_API ConstChar16Ptr U_FINAL {
+public:
+ /**
+ * Copies the pointer.
+ * @param p pointer
+ * @stable ICU 59
+ */
+ inline ConstChar16Ptr(const char16_t *p);
+#if !U_CHAR16_IS_TYPEDEF
+ /**
+ * Converts the pointer to char16_t *.
+ * @param p pointer to be converted
+ * @stable ICU 59
+ */
+ inline ConstChar16Ptr(const uint16_t *p);
+#endif
+#if U_SIZEOF_WCHAR_T==2 || defined(U_IN_DOXYGEN)
+ /**
+ * Converts the pointer to char16_t *.
+ * (Only defined if U_SIZEOF_WCHAR_T==2.)
+ * @param p pointer to be converted
+ * @stable ICU 59
+ */
+ inline ConstChar16Ptr(const wchar_t *p);
+#endif
+ /**
+ * nullptr constructor.
+ * @param p nullptr
+ * @stable ICU 59
+ */
+ inline ConstChar16Ptr(const std::nullptr_t p);
+
+ /**
+ * Destructor.
+ * @stable ICU 59
+ */
+ inline ~ConstChar16Ptr();
+
+ /**
+ * Pointer access.
+ * @return the wrapped pointer
+ * @stable ICU 59
+ */
+ inline const char16_t *get() const;
+ /**
+ * char16_t pointer access via type conversion (e.g., static_cast).
+ * @return the wrapped pointer
+ * @stable ICU 59
+ */
+ inline operator const char16_t *() const { return get(); }
+
+private:
+ ConstChar16Ptr() = delete;
+
+#ifdef U_ALIASING_BARRIER
+ template<typename T> static const char16_t *cast(const T *t) {
+ U_ALIASING_BARRIER(t);
+ return reinterpret_cast<const char16_t *>(t);
+ }
+
+ const char16_t *p_;
+#else
+ union {
+ const char16_t *cp;
+ const uint16_t *up;
+ const wchar_t *wp;
+ } u_;
+#endif
+};
+
+/// \cond
+#ifdef U_ALIASING_BARRIER
+
+ConstChar16Ptr::ConstChar16Ptr(const char16_t *p) : p_(p) {}
+#if !U_CHAR16_IS_TYPEDEF
+ConstChar16Ptr::ConstChar16Ptr(const uint16_t *p) : p_(cast(p)) {}
+#endif
+#if U_SIZEOF_WCHAR_T==2
+ConstChar16Ptr::ConstChar16Ptr(const wchar_t *p) : p_(cast(p)) {}
+#endif
+ConstChar16Ptr::ConstChar16Ptr(const std::nullptr_t p) : p_(p) {}
+ConstChar16Ptr::~ConstChar16Ptr() {
+ U_ALIASING_BARRIER(p_);
+}
+
+const char16_t *ConstChar16Ptr::get() const { return p_; }
+
+#else
+
+ConstChar16Ptr::ConstChar16Ptr(const char16_t *p) { u_.cp = p; }
+#if !U_CHAR16_IS_TYPEDEF
+ConstChar16Ptr::ConstChar16Ptr(const uint16_t *p) { u_.up = p; }
+#endif
+#if U_SIZEOF_WCHAR_T==2
+ConstChar16Ptr::ConstChar16Ptr(const wchar_t *p) { u_.wp = p; }
+#endif
+ConstChar16Ptr::ConstChar16Ptr(const std::nullptr_t p) { u_.cp = p; }
+ConstChar16Ptr::~ConstChar16Ptr() {}
+
+const char16_t *ConstChar16Ptr::get() const { return u_.cp; }
+
+#endif
+/// \endcond
+
+/**
+ * Converts from const char16_t * to const UChar *.
+ * Includes an aliasing barrier if available.
+ * @param p pointer
+ * @return p as const UChar *
+ * @stable ICU 59
+ */
+inline const UChar *toUCharPtr(const char16_t *p) {
+#ifdef U_ALIASING_BARRIER
+ U_ALIASING_BARRIER(p);
+#endif
+ return reinterpret_cast<const UChar *>(p);
+}
+
+/**
+ * Converts from char16_t * to UChar *.
+ * Includes an aliasing barrier if available.
+ * @param p pointer
+ * @return p as UChar *
+ * @stable ICU 59
+ */
+inline UChar *toUCharPtr(char16_t *p) {
+#ifdef U_ALIASING_BARRIER
+ U_ALIASING_BARRIER(p);
+#endif
+ return reinterpret_cast<UChar *>(p);
+}
+
+/**
+ * Converts from const char16_t * to const OldUChar *.
+ * Includes an aliasing barrier if available.
+ * @param p pointer
+ * @return p as const OldUChar *
+ * @stable ICU 59
+ */
+inline const OldUChar *toOldUCharPtr(const char16_t *p) {
+#ifdef U_ALIASING_BARRIER
+ U_ALIASING_BARRIER(p);
+#endif
+ return reinterpret_cast<const OldUChar *>(p);
+}
+
+/**
+ * Converts from char16_t * to OldUChar *.
+ * Includes an aliasing barrier if available.
+ * @param p pointer
+ * @return p as OldUChar *
+ * @stable ICU 59
+ */
+inline OldUChar *toOldUCharPtr(char16_t *p) {
+#ifdef U_ALIASING_BARRIER
+ U_ALIASING_BARRIER(p);
+#endif
+ return reinterpret_cast<OldUChar *>(p);
+}
+
+U_NAMESPACE_END
+
+#endif /* U_SHOW_CPLUSPLUS_API */
+
+#endif // __CHAR16PTR_H__