forked from boostorg/utility
Adding binary literal utility.
[SVN r48637]
This commit is contained in:
1 parent
a487f72329
commit
f15c96ffb0
6 files changed
+1421
-3
No files matched your search
+53
-2
@@ -23,6 +23,8 @@
|
||||
<li>
|
||||
Function template <a href="#addressof">addressof()</a></li>
|
||||
<li>Class template <a href="#result_of">result_of</a></li>
|
||||
<li>
|
||||
Macro <a href="#BOOST_BINARY">BOOST_BINARY</a></li>
|
||||
<li><a href="index.html">Other utilities not part of <code>utility.hpp</code></a></li>
|
||||
</ul>
|
||||
<h2>
|
||||
@@ -183,9 +185,58 @@ void f() {
|
||||
|
||||
<h2>Class templates for the Base-from-Member Idiom</h2>
|
||||
<p>See <a href="base_from_member.html">separate documentation</a>.</p>
|
||||
<h2><a name="BOOST_BINARY">Macro BOOST_BINARY</a></h2>
|
||||
|
||||
<p>The macro <code>BOOST_BINARY</code> allows for the
|
||||
representation of binary literals. It takes as an argument
|
||||
a binary number arranged as an arbitrary amount of 1s and 0s in
|
||||
groupings of length 1 to 8 inclusive, with groups separated
|
||||
by spaces. The type of the literal yielded is determined by
|
||||
the same rules as those of hex and octal
|
||||
literals (<i>2.13.1p1</i>). By implementation, this macro
|
||||
expands directly to an octal literal during preprocessing, so
|
||||
there is no overhead at runtime and the result is useable in
|
||||
any place that an octal literal would be.</p>
|
||||
|
||||
<p>In order to directly support binary literals with suffixes,
|
||||
additional macros of the form BOOST_BINARY_XXX are also
|
||||
provided, where XXX is a standard integer suffix in all capital
|
||||
letters. LL and ULL are also provided for representing long long
|
||||
and unsigned long long types in compilers which provide them as
|
||||
an extension.</p>
|
||||
|
||||
|
||||
<p>The BOOST_BINARY family of macros reside in the header
|
||||
<a
|
||||
href="../../boost/utility/binary.hpp"><boost/utility/binary.hpp></a>
|
||||
which is automatically included by
|
||||
<a
|
||||
href="../../boost/utility.hpp"><boost/utility.hpp></a>.
|
||||
|
||||
<p>Contributed by Matt Calabrese.</p><p>
|
||||
</p><h3>Example</h3>
|
||||
<blockquote>
|
||||
<pre>
|
||||
void foo( int );
|
||||
|
||||
void foo( unsigned long );
|
||||
|
||||
void bar()
|
||||
{
|
||||
int value1 = BOOST_BINARY( 100 111000 01 1 110 );
|
||||
|
||||
unsigned long value2 = BOOST_BINARY_UL( 100 001 ); // unsigned long
|
||||
|
||||
foo( BOOST_BINARY( 1010 ) ); // calls the first foo
|
||||
|
||||
foo( BOOST_BINARY_LU( 1010 ) ); // calls the second foo
|
||||
|
||||
long long value4 = BOOST_BINARY_LL( 11 000 ); // long long if supported
|
||||
}
|
||||
</pre></blockquote>
|
||||
<hr>
|
||||
<p>Revised <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan
|
||||
-->07 November, 2007<!--webbot bot="Timestamp" endspan i-checksum="39369"
|
||||
-->04 September, 2008<!--webbot bot="Timestamp" endspan i-checksum="39369"
|
||||
-->
|
||||
</p>
|
||||
<p>© Copyright Beman Dawes 1999-2003.</p>
|
||||
@@ -193,4 +244,4 @@ void f() {
|
||||
<a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a></p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
Reference in new issue
Block a user