Squashed 'third_party/boostorg/type_traits/' content from commit 059ed88

Change-Id: I222c604dfa1db194bf53bc6aa1152fb16e83ce06
git-subtree-dir: third_party/boostorg/type_traits
git-subtree-split: 059ed8839da3fecd1e8b62cdc11be006f6346b5e
diff --git a/doc/make_unsigned.qbk b/doc/make_unsigned.qbk
new file mode 100644
index 0000000..a4d7774
--- /dev/null
+++ b/doc/make_unsigned.qbk
@@ -0,0 +1,51 @@
+[/ 
+  Copyright 2007 John Maddock.
+  Distributed under the Boost Software License, Version 1.0.
+  (See accompanying file LICENSE_1_0.txt or copy at
+  http://www.boost.org/LICENSE_1_0.txt).
+]
+
+[section:make_unsigned make_unsigned]
+
+   template <class T>
+   struct make_unsigned
+   {
+      typedef __below type;
+   };
+   
+   template <class T> using make_unsigned_t = typename make_unsigned<T>::type; // C++11 and above
+
+__type If T is a unsigned integer type then the same type as T, if T is an 
+signed integer type then the corresponding unsigned type.  
+Otherwise if T is an enumerated or
+character type (char or wchar_t) then an unsigned integer type with the same
+width as T.
+
+If T has any cv-qualifiers then these are also present on the result type.
+
+[*Requires:]  T must be an integer or enumerated type, and must not be the type
+bool.
+
+__std_ref 3.9.1.
+
+[all_compilers]
+
+__header ` #include <boost/type_traits/make_unsigned.hpp>` or ` #include <boost/type_traits.hpp>`
+
+[table Examples
+
+[ [Expression] [Result Type]]
+
+[[`make_unsigned<int>::type`][`unsigned int`]]
+
+[[`make_unsigned<unsigned int const>::type`] [`unsigned int const`]]
+
+[[`make_unsigned<const unsigned long long>::type`] [`const unsigned long long`]]
+
+[[`make_unsigned<my_enum>::type`] [An unsigned integer type with the same width as the enum.]]
+[[`make_unsigned<wchar_t>::type`] [An unsigned integer type with the same width as wchar_t.]]
+
+]
+
+[endsect]
+