$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r60621 - in branches/release/libs/config: . doc doc/html doc/html/boost_config test
From: john_at_[hidden]
Date: 2010-03-15 13:53:54
Author: johnmaddock
Date: 2010-03-15 13:53:53 EDT (Mon, 15 Mar 2010)
New Revision: 60621
URL: http://svn.boost.org/trac/boost/changeset/60621
Log:
Merge doc updates from Trunk.
Properties modified: 
   branches/release/libs/config/   (props changed)
Text files modified: 
   branches/release/libs/config/doc/config.qbk                                          |     2                                         
   branches/release/libs/config/doc/guidelines.qbk                                      |    18 ++++++++-----                           
   branches/release/libs/config/doc/html/boost_config/acknowledgements.html             |     4 +-                                      
   branches/release/libs/config/doc/html/boost_config/boost_macro_reference.html        |    53 +++++++++++++++++++++++++++++++++++++-- 
   branches/release/libs/config/doc/html/boost_config/guidelines_for_boost_authors.html |    30 ++++++++++++----------                  
   branches/release/libs/config/doc/html/boost_config/rationale.html                    |     4 +-                                      
   branches/release/libs/config/doc/html/index.html                                     |    10 +++---                                  
   branches/release/libs/config/doc/macro_reference.qbk                                 |    30 +++++++++++++++++++++                   
   branches/release/libs/config/test/boost_no_integral_int64_t.ipp                      |     4 --                                      
   9 files changed, 117 insertions(+), 38 deletions(-)
Modified: branches/release/libs/config/doc/config.qbk
==============================================================================
--- branches/release/libs/config/doc/config.qbk	(original)
+++ branches/release/libs/config/doc/config.qbk	2010-03-15 13:53:53 EDT (Mon, 15 Mar 2010)
@@ -29,7 +29,7 @@
 [/ Other web resources ]
 
 [def __STL_PORT__ [@http://stlport.sourceforge.net STLport]]
-[def __BOOST_TRACKER__ [@http://sourceforge.net/tracker/?group_id=7586 Tracker]]
+[def __BOOST_TRACKER__ [@https://svn.boost.org/trac/boost/newticket Trac]]
 [def __CORE_LANGUAGE_DR337__ [@http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#337 Core Language DR337]]
 [def __PRINCIPLES_AND_PATTERNS_ARTICLE__ [@http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf following article]]
 
Modified: branches/release/libs/config/doc/guidelines.qbk
==============================================================================
--- branches/release/libs/config/doc/guidelines.qbk	(original)
+++ branches/release/libs/config/doc/guidelines.qbk	2010-03-15 13:53:53 EDT (Mon, 15 Mar 2010)
@@ -112,8 +112,8 @@
 "`int test()`" that is declared in a namespace with the same name as the macro,
 but in all lower case, and which returns zero on success:
 
-    namespace boost_no_foo {
 
+    namespace boost_no_foo {
     int test()
     {
         // test code goes here:
@@ -126,14 +126,18 @@
 Once the test code is in place in libs/config/test, updating the configuration
 test system proceeds as:
 
-* cd into `libs/config/tools` and run `bjam` : this generates the `.cpp`
+* cd into `libs/config/tools` and run `bjam`. This generates the `.cpp`
 file test cases from the `.ipp` file, updates the 
-libs/config/test/all/Jamfile.v2, `config_test.cpp` and `config_info.cpp`.
-* cd into `libs/config/test/all` and run `bjam `['MACRONAME` compiler-list`] : where
+libs/config/test/all/Jamfile.v2, `config_test.cpp` and `config_info.cpp`.[br][br]
+
+* cd into `libs/config/test/all` and run `bjam `['MACRONAME` compiler-list`], where
 ['MACRONAME] is the name of the new macro, and ['`compiler-list`] is a space separated list of
-compilers to test with.  You should see the tests pass with those compilers
-that don't have the defect, and fail with those that do.
-* cd into `libs/config/test` and run `bjam config_info config_test `['`compiler-list`] :
+compilers to test with.[br][br]
+The xxx_pass_test and the xxx_fail_test [*should both report `**passed**`].[br][br]
+If ['MACRONAME] is not defined when it should be defined, xxx_pass_test will not report `**passed**`.
+If ['MACRONAME] is defined when it should not be defined, xxx_fail_test will not report `**passed**`.[br][br] 
+
+* cd into `libs/config/test` and run `bjam config_info config_test `['`compiler-list`].
 `config_info` should build and run cleanly for all the compilers in ['`compiler-list`]
 while `config_test` should fail for those that have the defect, and pass for those
 that do not.
Modified: branches/release/libs/config/doc/html/boost_config/acknowledgements.html
==============================================================================
--- branches/release/libs/config/doc/html/boost_config/acknowledgements.html	(original)
+++ branches/release/libs/config/doc/html/boost_config/acknowledgements.html	2010-03-15 13:53:53 EDT (Mon, 15 Mar 2010)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Acknowledgements</title>
 <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -47,7 +47,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock<p>
         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)
       </p>
Modified: branches/release/libs/config/doc/html/boost_config/boost_macro_reference.html
==============================================================================
--- branches/release/libs/config/doc/html/boost_config/boost_macro_reference.html	(original)
+++ branches/release/libs/config/doc/html/boost_config/boost_macro_reference.html	2010-03-15 13:53:53 EDT (Mon, 15 Mar 2010)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Boost Macro Reference</title>
 <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -2851,6 +2851,53 @@
 <tr>
 <td>
               <p>
+                <code class="computeroutput"><span class="identifier">BOOST_WORKAROUND</span></code>
+              </p>
+              </td>
+<td>
+              <p>
+                This macro is used where a compiler specific workaround is required
+                that is not otherwise described by one of the other Boost.Config
+                macros. To use the macro you must first 
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">detail</span><span class="special">/</span><span class="identifier">workaround</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+                usage is then: 
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="preprocessor">#if</span> <span class="identifier">BOOST_WORKAROUND</span><span class="special">(</span><span class="identifier">MACRONAME</span><span class="special">,</span> <span class="identifier">CONDITION</span><span class="special">)</span>
+   <span class="comment">// workaround code goes here...
+</span><span class="preprocessor">#else</span>
+   <span class="comment">// Standard conforming code goes here...
+</span><span class="preprocessor">#endif</span>
+</pre>
+<p>
+                where <code class="computeroutput"><span class="identifier">MACRONAME</span></code> is
+                a macro that usually describes the version number to be tested against,
+                and <code class="computeroutput"><span class="identifier">CONDITION</span></code> is
+                a comparison operator followed by a value. For example <code class="computeroutput"><span class="identifier">BOOST_WORKAROUND</span><span class="special">(</span><span class="identifier">BOOST_INTEL</span><span class="special">,</span>
+                <span class="special"><=</span> <span class="number">1010</span><span class="special">)</span></code> would evaluate to <code class="computeroutput"><span class="number">1</span></code> for Intel C++ 10.1 and earlier.
+              </p>
+              <p>
+                The macro can also be used with <code class="computeroutput"><span class="identifier">BOOST_TESTED_AT</span></code>
+                if all current compiler versions exhibit the issue, but the issue
+                is expected to be fixed at some later point.
+              </p>
+              <p>
+                For example <code class="computeroutput"><span class="identifier">BOOST_WORKAROUND</span><span class="special">(</span><span class="identifier">__BORLANDC__</span><span class="special">,</span> <span class="identifier">BOOST_TESTED_AT</span><span class="special">(</span><span class="number">0x590</span><span class="special">))</span></code> would normally evaluate to <code class="computeroutput"><span class="number">1</span></code> for all values of <code class="computeroutput"><span class="identifier">__BORLANDC__</span></code>
+                <span class="emphasis"><em>unless</em></span> the macro <code class="computeroutput"><span class="identifier">BOOST_DETECT_OUTDATED_WORKAROUNDS</span></code>
+                is defined, in which case evaluates to <code class="computeroutput"><span class="special">(</span><span class="identifier">__BORLANDC__</span> <span class="special"><=</span>
+                <span class="number">0x590</span><span class="special">)</span></code>.
+              </p>
+              <p>
+                <span class="bold"><strong>Note</strong></span>: the ultimate source of documentation
+                for this macro is in boost/detail/workaround.hpp.
+              </p>
+              </td>
+</tr>
+<tr>
+<td>
+              <p>
                 <code class="computeroutput"><span class="identifier">BOOST_DEDUCED_TYPENAME</span></code>
               </p>
               </td>
@@ -3160,7 +3207,7 @@
               </td>
 <td>
               <p>
-                Describes the boost version number in XXYYZZ format such that: <code class="computeroutput"><span class="special">(</span><span class="identifier">BOOST_VERSION</span>
+                Describes the boost version number in XYYYZZ format such that: <code class="computeroutput"><span class="special">(</span><span class="identifier">BOOST_VERSION</span>
                 <span class="special">%</span> <span class="number">100</span><span class="special">)</span></code> is the sub-minor version, <code class="computeroutput"><span class="special">((</span><span class="identifier">BOOST_VERSION</span>
                 <span class="special">/</span> <span class="number">100</span><span class="special">)</span> <span class="special">%</span> <span class="number">1000</span><span class="special">)</span></code>
                 is the minor version, and <code class="computeroutput"><span class="special">(</span><span class="identifier">BOOST_VERSION</span> <span class="special">/</span>
@@ -3534,7 +3581,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock<p>
         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)
       </p>
Modified: branches/release/libs/config/doc/html/boost_config/guidelines_for_boost_authors.html
==============================================================================
--- branches/release/libs/config/doc/html/boost_config/guidelines_for_boost_authors.html	(original)
+++ branches/release/libs/config/doc/html/boost_config/guidelines_for_boost_authors.html	2010-03-15 13:53:53 EDT (Mon, 15 Mar 2010)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Guidelines for Boost Authors</title>
 <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -220,7 +220,6 @@
         on success:
       </p>
 <pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost_no_foo</span> <span class="special">{</span>
-
 <span class="keyword">int</span> <span class="identifier">test</span><span class="special">()</span>
 <span class="special">{</span>
     <span class="comment">// test code goes here:
@@ -236,24 +235,27 @@
       </p>
 <div class="itemizedlist"><ul type="disc">
 <li>
-          cd into <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">tools</span></code> and run <code class="computeroutput"><span class="identifier">bjam</span></code>
-          : this generates the <code class="computeroutput"><span class="special">.</span><span class="identifier">cpp</span></code>
+          cd into <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">tools</span></code> and run <code class="computeroutput"><span class="identifier">bjam</span></code>.
+          This generates the <code class="computeroutput"><span class="special">.</span><span class="identifier">cpp</span></code>
           file test cases from the <code class="computeroutput"><span class="special">.</span><span class="identifier">ipp</span></code> file, updates the libs/config/test/all/Jamfile.v2,
-          <code class="computeroutput"><span class="identifier">config_test</span><span class="special">.</span><span class="identifier">cpp</span></code> and <code class="computeroutput"><span class="identifier">config_info</span><span class="special">.</span><span class="identifier">cpp</span></code>.
-        </li>
+          <code class="computeroutput"><span class="identifier">config_test</span><span class="special">.</span><span class="identifier">cpp</span></code> and <code class="computeroutput"><span class="identifier">config_info</span><span class="special">.</span><span class="identifier">cpp</span></code>.<br><br>
+</li>
 <li>
           cd into <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">all</span></code> and run <code class="computeroutput"><span class="identifier">bjam</span>
-          </code><span class="emphasis"><em>MACRONAME<code class="computeroutput"> <span class="identifier">compiler</span><span class="special">-</span><span class="identifier">list</span></code></em></span>
-          : where <span class="emphasis"><em>MACRONAME</em></span> is the name of the new macro, and
+          </code><span class="emphasis"><em>MACRONAME<code class="computeroutput"> <span class="identifier">compiler</span><span class="special">-</span><span class="identifier">list</span></code></em></span>,
+          where <span class="emphasis"><em>MACRONAME</em></span> is the name of the new macro, and
           <span class="emphasis"><em><code class="computeroutput"><span class="identifier">compiler</span><span class="special">-</span><span class="identifier">list</span></code></em></span> is a space separated
-          list of compilers to test with. You should see the tests pass with those
-          compilers that don't have the defect, and fail with those that do.
-        </li>
+          list of compilers to test with.<br><br> The xxx_pass_test and the
+          xxx_fail_test <span class="bold"><strong>should both report <code class="computeroutput"><span class="special">**</span><span class="identifier">passed</span><span class="special">**</span></code></strong></span>.<br><br> If <span class="emphasis"><em>MACRONAME</em></span> is not defined when it should
+          be defined, xxx_pass_test will not report <code class="computeroutput"><span class="special">**</span><span class="identifier">passed</span><span class="special">**</span></code>.
+          If <span class="emphasis"><em>MACRONAME</em></span> is defined when it should not be defined,
+          xxx_fail_test will not report <code class="computeroutput"><span class="special">**</span><span class="identifier">passed</span><span class="special">**</span></code>.<br><br>
+</li>
 <li>
           cd into <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">test</span></code> and run <code class="computeroutput"><span class="identifier">bjam</span>
           <span class="identifier">config_info</span> <span class="identifier">config_test</span>
-          </code><span class="emphasis"><em><code class="computeroutput"><span class="identifier">compiler</span><span class="special">-</span><span class="identifier">list</span></code></em></span>
-          : <code class="computeroutput"><span class="identifier">config_info</span></code> should build
+          </code><span class="emphasis"><em><code class="computeroutput"><span class="identifier">compiler</span><span class="special">-</span><span class="identifier">list</span></code></em></span>.
+          <code class="computeroutput"><span class="identifier">config_info</span></code> should build
           and run cleanly for all the compilers in <span class="emphasis"><em><code class="computeroutput"><span class="identifier">compiler</span><span class="special">-</span><span class="identifier">list</span></code></em></span>
           while <code class="computeroutput"><span class="identifier">config_test</span></code> should
           fail for those that have the defect, and pass for those that do not.
@@ -358,7 +360,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock<p>
         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)
       </p>
Modified: branches/release/libs/config/doc/html/boost_config/rationale.html
==============================================================================
--- branches/release/libs/config/doc/html/boost_config/rationale.html	(original)
+++ branches/release/libs/config/doc/html/boost_config/rationale.html	2010-03-15 13:53:53 EDT (Mon, 15 Mar 2010)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Rationale</title>
 <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -121,7 +121,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock<p>
+<td align="right"><div class="copyright-footer">Copyright © 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock<p>
         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)
       </p>
Modified: branches/release/libs/config/doc/html/index.html
==============================================================================
--- branches/release/libs/config/doc/html/index.html	(original)
+++ branches/release/libs/config/doc/html/index.html	2010-03-15 13:53:53 EDT (Mon, 15 Mar 2010)
@@ -1,6 +1,6 @@
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
 <title>Boost.Config</title>
 <link rel="stylesheet" href="../../../../doc/html/boostbook.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
@@ -26,9 +26,9 @@
 <div><div class="authorgroup"><div class="author"><h3 class="author">
 <span class="firstname">Vesa Karvonen, John Maddock</span> <span class="surname">Beman Dawes</span>
 </h3></div></div></div>
-<div><p class="copyright">Copyright © 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock</p></div>
+<div><p class="copyright">Copyright © 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock</p></div>
 <div><div class="legalnotice">
-<a name="id770460"></a><p>
+<a name="id793416"></a><p>
         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)
       </p>
@@ -131,7 +131,7 @@
       </p>
 <p>
         Boost library users can request support for additional compilers or platforms
-        by visiting our Tracker
+        by visiting our Trac
         and submitting a support request.
       </p>
 </div>
@@ -960,7 +960,7 @@
 </div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: August 06, 2009 at 09:16:56 GMT</small></p></td>
+<td align="left"><p><small>Last revised: March 02, 2010 at 17:08:14 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>
Modified: branches/release/libs/config/doc/macro_reference.qbk
==============================================================================
--- branches/release/libs/config/doc/macro_reference.qbk	(original)
+++ branches/release/libs/config/doc/macro_reference.qbk	2010-03-15 13:53:53 EDT (Mon, 15 Mar 2010)
@@ -633,6 +633,34 @@
 [table
 [[Macro           ][Description            ]]
 
+[[`BOOST_WORKAROUND`][
+This macro is used where a compiler specific workaround is required that is not otherwise
+described by one of the other Boost.Config macros.  To use the macro you must first
+``
+#include <boost/detail/workaround.hpp>
+``
+usage is then:
+``
+#if BOOST_WORKAROUND(MACRONAME, CONDITION)
+   // workaround code goes here...
+#else
+   // Standard conforming code goes here...
+#endif
+``
+where `MACRONAME` is a macro that usually describes the version number to be tested against, and `CONDITION`
+is a comparison operator followed by a value.  For example `BOOST_WORKAROUND(BOOST_INTEL, <= 1010)` would 
+evaluate to `1` for Intel C++ 10.1 and earlier.  
+
+The macro can also be used with `BOOST_TESTED_AT` if all
+current compiler versions exhibit the issue, but the issue is expected to be fixed at some later point.  
+
+For example
+`BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x590))` would normally evaluate to `1` for all values
+of `__BORLANDC__` /unless/ the macro `BOOST_DETECT_OUTDATED_WORKAROUNDS` is defined, in which case evaluates to
+`(__BORLANDC__ <= 0x590)`.
+
+[*Note]: the ultimate source of documentation for this macro is in [@../../../../boost/detail/workaround.hpp boost/detail/workaround.hpp].
+]]
 [[`BOOST_DEDUCED_TYPENAME`][
 Some compilers don't support the use of typename for dependent types in deduced
 contexts. This macro expands to nothing on those compilers, and typename
@@ -778,7 +806,7 @@
 [[Macro            ][Header         ][Description               ]]
 
 [[`BOOST_VERSION`][`<boost/version.hpp>`][
-Describes the boost version number in XXYYZZ format such that:
+Describes the boost version number in XYYYZZ format such that:
 `(BOOST_VERSION % 100)` is the sub-minor version, `((BOOST_VERSION / 100) % 1000)`
 is the minor version, and `(BOOST_VERSION / 100000)` is the major version.
 ]]
Modified: branches/release/libs/config/test/boost_no_integral_int64_t.ipp
==============================================================================
--- branches/release/libs/config/test/boost_no_integral_int64_t.ipp	(original)
+++ branches/release/libs/config/test/boost_no_integral_int64_t.ipp	2010-03-15 13:53:53 EDT (Mon, 15 Mar 2010)
@@ -43,9 +43,7 @@
 
 int test()
 {
-   llt<mask> m;
-   (void)m;
-   return 0;
+   return llt<mask>::value != (1uLL << 50);
 }
 
 }