Squashed 'third_party/boostorg/core/' content from commit e128f4e

Change-Id: Ieb2dc8269dd1750337cfc876826ea7af75f12d63
git-subtree-dir: third_party/boostorg/core
git-subtree-split: e128f4e1b8904d47561700892843f07d5d1160db
diff --git a/doc/is_same.qbk b/doc/is_same.qbk
new file mode 100644
index 0000000..657c591
--- /dev/null
+++ b/doc/is_same.qbk
@@ -0,0 +1,69 @@
+[/
+  Copyright 2014 Peter Dimov
+
+  Distributed under the Boost Software License, Version 1.0.
+
+  See accompanying file LICENSE_1_0.txt
+  or copy at http://boost.org/LICENSE_1_0.txt
+]
+
+[section:is_same is_same]
+
+[simplesect Authors]
+
+* Peter Dimov
+
+[endsimplesect]
+
+[section Header <boost/core/is_same.hpp>]
+
+The header `<boost/core/is_same.hpp>` defines the class template
+`boost::core::is_same<T1,T2>`. It defines a nested integral constant
+`value` which is `true` when `T1` and `T2` are the same type, and
+`false` when they are not.
+
+In tandem with `BOOST_TEST_TRAIT_TRUE` and `BOOST_TEST_TRAIT_FALSE`,
+`is_same` is useful for writing tests for traits classes that have
+to define specific nested types.
+
+[section Synopsis]
+
+``
+namespace boost
+{
+
+namespace core
+{
+    template<class T1, class T2> struct is_same;
+}
+
+}
+``
+
+[endsect]
+
+[section Example]
+
+``
+#include <boost/core/lightweight_test_trait.hpp>
+#include <boost/core/is_same.hpp>
+
+template<class T> struct X
+{
+    typedef T& type;
+};
+
+using boost::core::is_same;
+
+int main()
+{
+    BOOST_TEST_TRAIT_TRUE(( is_same<X<int>::type, int&> ));
+    return boost::report_errors();
+}
+``
+
+[endsect]
+
+[endsect]
+
+[endsect]