Compare commits

...

33 Commits

Author SHA1 Message Date
Marshall Clow 8a8b7b134e Merge changes from develop 2015-03-30 10:09:26 -07:00
Edward Diener 82e81345f2 Merge pull request #19 from brunocodutra/Ticket7769
Fix to pull request #13
2015-03-22 14:25:07 -04:00
Bruno Dutra 07a5457dcd avoiding errors on visual studio compilers
errors were due to the way MPL_ASSERT is defined for these compilers
2015-03-21 21:08:05 -03:00
Marshall Clow f0f1680f3c Merge pull request #18 from felgru/develop
fix typos in the documentation; pull request from @felgru
2015-03-20 16:19:21 -07:00
Felix Gruber 2be4714cc5 fix typos in the documentation 2015-03-20 22:42:27 +01:00
Marshall Clow 952471841f Merge pull request #13 from brunocodutra/Ticket7769
Fix to Ticket #7769 - @brunocodutra, please watch the test runners, and ping me in a few days. I will merge to master then. Thanks!
2015-03-19 10:26:39 -07:00
Bruno Dutra feb7835e62 Adding newly added test to the Jamfile 2015-02-21 23:19:03 -03:00
Bruno Dutra faf17ec858 Adding test cases for a scenario of increased arity limit
Test cases are based on calling apply to forward to the and_ predicate
an increasing number, from 2 to 15, of true_ constants. Since the arity
limit on the current version is set to 5,
BOOST_MPL_LIMIT_METAFUNCTION_ARITY and
BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS must be appropriately set.
2015-02-21 23:15:38 -03:00
Bruno Dutra 6fd793c787 keeping it simple 2015-02-08 19:14:55 -02:00
Bruno Dutra ff4944f0ec using BOOST_PP_ENUM_PARAMS to generate base seq accordingly
hardcoding a base seq from 0 to 9 was the culprit behind Ticket #7769
2015-02-08 17:07:22 -02:00
K. Noel Belcourt 6a0f617a6c Revert "Merge pull request #11 from Lastique/modularization"
This reverts commit a9a1eddba8, reversing
changes made to d6bc9845ba.
2014-09-19 18:55:00 -06:00
K. Noel Belcourt a30e4a49a8 Revert "Merge pull request #12 from Lastique/modularization_fix"
This reverts commit c296697981, reversing
changes made to a9a1eddba8.
2014-09-19 18:54:50 -06:00
Edward Diener c296697981 Merge pull request #12 from Lastique/modularization_fix
Move compiler.hpp to MPL.Core to avoid circular dependency.
2014-09-17 19:31:37 -04:00
Andrey Semashev c7997e039d Moved compiler.hpp to MPL.Core to avoid circular dependency. 2014-09-16 15:43:08 +04:00
Noel Belcourt a9a1eddba8 Merge pull request #11 from Lastique/modularization
Separate MPL and MPL.Core

Unfortunately, I'm not able to test it right now.
2014-09-10 14:36:48 -06:00
Andrey Semashev cddc55a6c4 Updated tests and jamfiles to reflect the changed testing headers location. 2014-09-04 23:39:44 +04:00
Andrey Semashev 332389f50e Moved testing headers to tests to avoid dependency on Boost.Core. 2014-09-04 23:15:04 +04:00
Andrey Semashev 6064a97e3a Moved sizeof.hpp to core components. 2014-08-31 14:41:53 +04:00
Andrey Semashev a46a787a49 Use core/lightweight_test.hpp. 2014-08-31 14:11:17 +04:00
Andrey Semashev 9bbc806090 Fixed tests compilation. 2014-08-31 14:09:10 +04:00
Andrey Semashev 64f50f82aa Removed workaround for Borland Compiler 5.9 to avoid dependency on TypeTraits. 2014-08-30 21:00:05 +04:00
Andrey Semashev 6b37526352 Added a readme file. 2014-08-30 20:48:46 +04:00
Andrey Semashev b2d6e667a0 Added a sublibs tag file. 2014-08-30 20:42:30 +04:00
Andrey Semashev a469a67ab8 Removed dependency on TypeTraits. 2014-08-30 20:39:07 +04:00
Andrey Semashev e296279084 Moved min/max to MPL.Core. 2014-08-30 20:26:01 +04:00
Andrey Semashev 07bff9e105 Moved tests for core components to the sub-library. 2014-08-30 20:15:54 +04:00
Andrey Semashev 82890fd03e Moved Boost.MPL.Core headers to a sublibrary. 2014-08-30 17:21:16 +04:00
Edward Diener d6bc9845ba Merge pull request #10 from danieljames/metadata
Create metadata file.
2014-08-18 11:38:29 -04:00
Daniel James afe0e6bbc4 Add metadata file. 2014-08-18 15:07:32 +01:00
Edward Diener bde91646cf Merge pull request #9 from ericniebler/develop
add back the has_xxx workaround for msvc if used with nvcc
2014-07-07 19:36:08 -04:00
Eric Niebler aec459a49c add back the has_xxx workaround for msvc if used with nvcc 2014-07-07 15:47:06 -07:00
Edward Diener 1169c26856 Merge pull request #8 from ericniebler/has-xxx-msvc
eliminate unnecessary workaround for modern msvc versions
2014-06-27 07:42:17 -04:00
Eric Niebler 6893e5e5de eliminate unnecessary workaround for modern msvc versions 2014-06-26 22:25:53 -07:00
6 changed files with 75 additions and 3 deletions
+1 -1
View File
@@ -35,7 +35,7 @@ metafunctions. It provides a conceptual foundation and an extensive
set of powerful and coherent tools that make doing explict metaprogramming
in C++ as easy and enjoyable as possible within the current language.</p>
<p>There are several places to start when getting familiar with the library,
depending on what your know about metaprogramming in general and
depending on what you know about metaprogramming in general and
C++ template metaprogramming in particular. Starting with
Boost version 1.32, the MPL comes with both an <a class="reference" href="./tutorial/tutorial-metafunctions.html">in-depth tutorial</a> on its
fundamental concepts and an annotated <a class="reference" href="./tutorial/reference-manual.html">reference manual</a> covering all concepts
+1 -1
View File
@@ -113,7 +113,7 @@ arguments), which comes down to the follwing two criteria:</p>
placeholders do contain these).</li>
</ol>
<p>If these two hold, you can safely put <tt class="literal"><span class="pre">BOOST_MPL_AUX_LAMBDA_SUPPORT</span></tt> inside
your metafunction and forget about the issue. If not, your are out of luck and
your metafunction and forget about the issue. If not, you are out of luck and
probably have to write a metafunction class instead.</p>
<p>The good news are that most of the MPL's own metafunctions and <a class="reference" href="../../../type_traits/index.html" target="_top">Boost.Type Traits</a>
templates are &quot;placeholder-safe&quot; and have the workaround applied to them, so
@@ -15,9 +15,16 @@
// $Revision$
#include <boost/preprocessor/seq/subseq.hpp>
#include <boost/preprocessor/repetition/repeat.hpp>
#include <boost/preprocessor/arithmetic/add.hpp>
#define BOOST_MPL_PP_RANGE_ITEM(z,n,_) (n)
#define BOOST_MPL_PP_RANGE(first, length) \
BOOST_PP_SEQ_SUBSEQ((0)(1)(2)(3)(4)(5)(6)(7)(8)(9), first, length) \
BOOST_PP_SEQ_SUBSEQ( \
BOOST_PP_REPEAT(BOOST_PP_ADD(first,length), BOOST_MPL_PP_RANGE_ITEM, _), \
first, length \
) \
/**/
#endif // BOOST_MPL_AUX_PREPROCESSOR_RANGE_HPP_INCLUDED
+14
View File
@@ -0,0 +1,14 @@
{
"key": "mpl",
"name": "MPL",
"authors": [
"Aleksey Gurtovoy"
],
"description": "The Boost.MPL library is a general-purpose, high-level C++ template metaprogramming framework of compile-time algorithms, sequences and metafunctions. It provides a conceptual foundation and an extensive set of powerful and coherent tools that make doing explict metaprogramming in C++ as easy and enjoyable as possible within the current language.",
"category": [
"Metaprogramming"
],
"maintainers": [
"Aleksey Gurtovoy <agurtovoy -at- meta-comm.com>"
]
}
+1
View File
@@ -1,4 +1,5 @@
compile aux_/increased_arity.cpp ;
compile aux_/largest_int.cpp ;
compile aux_/msvc_is_class.cpp ;
compile aux_/template_arity.cpp ;
+50
View File
@@ -0,0 +1,50 @@
// Copyright Bruno Dutra 2015
//
// 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)
//
// See http://www.boost.org/libs/mpl for documentation.
// $Id$
// $Date$
// $Revision$
#define BOOST_MPL_LIMIT_METAFUNCTION_ARITY 15
#define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
#include <boost/mpl/logical.hpp>
#include <boost/mpl/placeholders.hpp>
#include <boost/mpl/apply.hpp>
#include <boost/mpl/aux_/test.hpp>
#include <boost/preprocessor/inc.hpp>
#include <boost/preprocessor/repeat_from_to.hpp>
#include <boost/preprocessor/enum_params.hpp>
#include <boost/preprocessor/facilities/intercept.hpp>
#define TEST_N_ARY(unused1, N, unused2) \
static_assert_< \
apply< \
and_<BOOST_PP_ENUM_PARAMS(N, _ BOOST_PP_INTERCEPT)>, \
BOOST_PP_ENUM_PARAMS(N, true_ BOOST_PP_INTERCEPT) \
> \
>(); \
/**/
template<typename assertion>
void static_assert_(){
MPL_ASSERT((typename assertion::type));
}
MPL_TEST_CASE()
{
BOOST_PP_REPEAT_FROM_TO(
2,
BOOST_PP_INC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY),
TEST_N_ARY,
_
)
}