forked from boostorg/mp11
Document mp_plus
This commit is contained in:
@ -172,6 +172,7 @@
|
|||||||
<dt><span class="section"><a href="mp11.html#mp11.reference.function.mp_or_t"><code class="computeroutput"><span class="identifier">mp_or</span><span class="special"><</span><span class="identifier">T</span><span class="special">...></span></code></a></span></dt>
|
<dt><span class="section"><a href="mp11.html#mp11.reference.function.mp_or_t"><code class="computeroutput"><span class="identifier">mp_or</span><span class="special"><</span><span class="identifier">T</span><span class="special">...></span></code></a></span></dt>
|
||||||
<dt><span class="section"><a href="mp11.html#mp11.reference.function.mp_any_t"><code class="computeroutput"><span class="identifier">mp_any</span><span class="special"><</span><span class="identifier">T</span><span class="special">...></span></code></a></span></dt>
|
<dt><span class="section"><a href="mp11.html#mp11.reference.function.mp_any_t"><code class="computeroutput"><span class="identifier">mp_any</span><span class="special"><</span><span class="identifier">T</span><span class="special">...></span></code></a></span></dt>
|
||||||
<dt><span class="section"><a href="mp11.html#mp11.reference.function.mp_same_t"><code class="computeroutput"><span class="identifier">mp_same</span><span class="special"><</span><span class="identifier">T</span><span class="special">...></span></code></a></span></dt>
|
<dt><span class="section"><a href="mp11.html#mp11.reference.function.mp_same_t"><code class="computeroutput"><span class="identifier">mp_same</span><span class="special"><</span><span class="identifier">T</span><span class="special">...></span></code></a></span></dt>
|
||||||
|
<dt><span class="section"><a href="mp11.html#mp11.reference.function.mp_plus_t"><code class="computeroutput"><span class="identifier">mp_plus</span><span class="special"><</span><span class="identifier">T</span><span class="special">...></span></code></a></span></dt>
|
||||||
</dl></dd>
|
</dl></dd>
|
||||||
<dt><span class="section"><a href="mp11.html#mp11.reference.bind">Bind, <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">mp11</span><span class="special">/</span><span class="identifier">bind</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
|
<dt><span class="section"><a href="mp11.html#mp11.reference.bind">Bind, <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">mp11</span><span class="special">/</span><span class="identifier">bind</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a></span></dt>
|
||||||
<dd><dl>
|
<dd><dl>
|
||||||
@ -2272,6 +2273,20 @@
|
|||||||
is <code class="computeroutput"><span class="identifier">mp_true</span></code>.
|
is <code class="computeroutput"><span class="identifier">mp_true</span></code>.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="section">
|
||||||
|
<div class="titlepage"><div><div><h4 class="title">
|
||||||
|
<a name="mp11.reference.function.mp_plus_t"></a><a class="link" href="mp11.html#mp11.reference.function.mp_plus_t" title="mp_plus<T...>"><code class="computeroutput"><span class="identifier">mp_plus</span><span class="special"><</span><span class="identifier">T</span><span class="special">...></span></code></a>
|
||||||
|
</h4></div></div></div>
|
||||||
|
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span><span class="special">...</span> <span class="identifier">T</span><span class="special">></span> <span class="keyword">using</span> <span class="identifier">mp_plus</span> <span class="special">=</span> <span class="comment">/*...*/</span><span class="special">;</span>
|
||||||
|
</pre>
|
||||||
|
<p>
|
||||||
|
<code class="computeroutput"><span class="identifier">mp_plus</span><span class="special"><</span><span class="identifier">T</span><span class="special">...></span></code>
|
||||||
|
is an integral constant type with a value that is the sum of <code class="computeroutput"><span class="identifier">U</span><span class="special">::</span><span class="identifier">value</span></code>
|
||||||
|
for all types <code class="computeroutput"><span class="identifier">U</span></code> in <code class="computeroutput"><span class="identifier">T</span><span class="special">...</span></code>.
|
||||||
|
<code class="computeroutput"><span class="identifier">mp_plus</span><span class="special"><></span></code>
|
||||||
|
is <code class="computeroutput"><span class="identifier">mp_int</span><span class="special"><</span><span class="number">0</span><span class="special">></span></code>.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="section">
|
<div class="section">
|
||||||
<div class="titlepage"><div><div><h3 class="title">
|
<div class="titlepage"><div><div><h3 class="title">
|
||||||
@ -2478,7 +2493,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||||
<td align="left"><p><small>Last revised: May 23, 2017 at 22:20:27 GMT</small></p></td>
|
<td align="left"><p><small>Last revised: May 23, 2017 at 22:51:13 GMT</small></p></td>
|
||||||
<td align="right"><div class="copyright-footer"></div></td>
|
<td align="right"><div class="copyright-footer"></div></td>
|
||||||
</tr></table>
|
</tr></table>
|
||||||
<hr>
|
<hr>
|
||||||
|
@ -70,4 +70,11 @@ returns `mp_true`. If all results are `mp_false`, returns `mp_false`. `mp_or<>`
|
|||||||
`mp_same<T...>` is `mp_true` if all the types in `T...` are the same type, `mp_false` otherwise. `mp_same<>` is `mp_true`.
|
`mp_same<T...>` is `mp_true` if all the types in `T...` are the same type, `mp_false` otherwise. `mp_same<>` is `mp_true`.
|
||||||
[endsect]
|
[endsect]
|
||||||
|
|
||||||
|
[section `mp_plus<T...>`]
|
||||||
|
template<class... T> using mp_plus = /*...*/;
|
||||||
|
|
||||||
|
`mp_plus<T...>` is an integral constant type with a value that is the sum of `U::value` for all types `U` in `T...`.
|
||||||
|
`mp_plus<>` is `mp_int<0>`.
|
||||||
|
[endsect]
|
||||||
|
|
||||||
[endsect:function]
|
[endsect:function]
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
#include <boost/mp11/utility.hpp>
|
#include <boost/mp11/utility.hpp>
|
||||||
#include <boost/mp11/detail/mp_list.hpp>
|
#include <boost/mp11/detail/mp_list.hpp>
|
||||||
#include <boost/mp11/detail/mp_count.hpp>
|
#include <boost/mp11/detail/mp_count.hpp>
|
||||||
|
#include <boost/mp11/detail/mp_plus.hpp>
|
||||||
#include <type_traits>
|
#include <type_traits>
|
||||||
|
|
||||||
namespace boost
|
namespace boost
|
||||||
|
@ -103,6 +103,7 @@ run mp_and.cpp : : : $(REQ) ;
|
|||||||
run mp_any.cpp : : : $(REQ) ;
|
run mp_any.cpp : : : $(REQ) ;
|
||||||
run mp_or.cpp : : : $(REQ) ;
|
run mp_or.cpp : : : $(REQ) ;
|
||||||
run mp_same.cpp : : : $(REQ) ;
|
run mp_same.cpp : : : $(REQ) ;
|
||||||
|
run mp_plus.cpp : : : $(REQ) ;
|
||||||
|
|
||||||
# map
|
# map
|
||||||
run mp_map_find.cpp : : : $(REQ) ;
|
run mp_map_find.cpp : : : $(REQ) ;
|
||||||
|
32
test/mp_plus.cpp
Normal file
32
test/mp_plus.cpp
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
|
||||||
|
// Copyright 2015-2017 Peter Dimov.
|
||||||
|
//
|
||||||
|
// 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
|
||||||
|
|
||||||
|
|
||||||
|
#include <boost/mp11/function.hpp>
|
||||||
|
#include <boost/core/lightweight_test_trait.hpp>
|
||||||
|
#include <type_traits>
|
||||||
|
|
||||||
|
template<class T, T N> using integral = std::integral_constant<T, N>;
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
using boost::mp11::mp_plus;
|
||||||
|
|
||||||
|
BOOST_TEST_TRAIT_TRUE((std::is_same<mp_plus<>, integral<int, 0>>));
|
||||||
|
|
||||||
|
BOOST_TEST_TRAIT_TRUE((std::is_same<mp_plus<integral<char, 1>>, integral<int, 1>>));
|
||||||
|
BOOST_TEST_TRAIT_TRUE((std::is_same<mp_plus<integral<short, 2>>, integral<int, 2>>));
|
||||||
|
BOOST_TEST_TRAIT_TRUE((std::is_same<mp_plus<integral<int, 3>>, integral<int, 3>>));
|
||||||
|
BOOST_TEST_TRAIT_TRUE((std::is_same<mp_plus<integral<unsigned, 4>>, integral<unsigned, 4>>));
|
||||||
|
|
||||||
|
BOOST_TEST_TRAIT_TRUE((std::is_same<mp_plus<integral<char, 1>, integral<char, 2>>, integral<int, 3>>));
|
||||||
|
BOOST_TEST_TRAIT_TRUE((std::is_same<mp_plus<integral<short, 1>, integral<short, 2>, integral<short, 3>>, integral<int, 6>>));
|
||||||
|
BOOST_TEST_TRAIT_TRUE((std::is_same<mp_plus<integral<int, 1>, integral<int, 2>, integral<int, 3>, integral<long, 4>>, integral<long, 10>>));
|
||||||
|
|
||||||
|
return boost::report_errors();
|
||||||
|
}
|
Reference in New Issue
Block a user