458 Commits

Author SHA1 Message Date
Sergey Chebotarev
2358570f2d Remove static (#90) 2025-10-23 11:37:57 +03:00
Peter Dimov
aa3b1c464d Condition macro workarounds on _MSC_EXTENSIONS instead of _MSC_VER. Fixes #84. 2025-06-27 02:10:14 +03:00
aihao1007
cd74f40d46 Fix BOOST_MPL_AUX_ASSERT_NOT_NA 2025-01-03 15:32:30 -05:00
Ivan Komissarov
502078c91d Do not check the birand/bitor macros in cplusplus mode
Some 3rdparty parsers (e.g. Qt moc) fail to parse the bitand.hpp
due to the fact that bitand is a keyword in C++, not a macro.
Modern MSVC versions define bitand/bitor only if __cplusplus macro
is not defined, see iso646.h: https://pastebin.com/zTcd0juT

Thus, boost can also check the macro only in C mode making moc happy
2025-01-03 11:34:47 -05:00
Ed Catmur
fb6b861834 Update integral_wrapper.hpp
Apply change since C++11
2023-11-27 09:55:00 -06:00
Ed Catmur
8499ae7e4f Use static const for next/prior from C++17
Trying to form next/prior in constant evaluation may be ill-formed; see https://github.com/boostorg/mpl/issues/69
2023-11-24 08:53:05 -07:00
Alexander Grund
b440c45c28 Avoid Wzero-as-null-pointer-constant warning (#75)
Newer compilers may warn when using `0`, e.g.:
```
./boost/iterator/detail/facade_iterator_category.hpp:161:5: error: zero as null pointer constant [-Werror,-Wzero-as-null-pointer-constant]
    BOOST_MPL_ASSERT_NOT((is_iterator_category<Traversal>));
    ^
./boost/mpl/assert.hpp:324:58: note: expanded from macro 'BOOST_MPL_ASSERT_NOT'
              boost::mpl::assert_not_arg( (void (*) pred)0, 1 ) \
```
2023-05-10 21:16:45 -06:00
Nikita Kniazev
8f10d06b96 Fix unused variable warning from BOOST_MPL_ASSERT_* on Clang 2022-05-01 17:23:44 -04:00
Mat Berchtold
03d89ec586 Fixes issue https://github.com/boostorg/mpl/issues/46 2022-05-01 16:07:58 -04:00
James E. King III
bd4ec497a8 Use BOOST_WORKAROUND when checking compiler level 2022-05-01 08:47:52 -04:00
Anis Ladram
4634ef904e Fix -Wparentheses warning not ignored on NVCC
BOOST_GCC is not defined for NVCC, therefore we should use BOOST_GCC_VERSION.
2022-05-01 08:47:52 -04:00
Ion Gaztañaga
c61b1e3508 Fix some -Wsign-conversion warnings 2022-04-30 22:45:39 -04:00
Edward Diener
6704b09dcf It normally should not be necessary to use the _Z form of the BOOST_P… (#52)
* It normally should not be necessary to use the _Z form of the BOOST_PP_ENUM macro, although it is perfectly legal and helpful to do so, but in this case it is necessary as a workaround for a bug in the new VC++ standard conforming preprocessor. The bug manifests itself when testing the TTI library, which internally uses the Boost MPL code. The bug in the new VC++ standard conforming compiler is fixed in the VS2019 preview product, so that fix is sure to find its way to the official VS2019 product sometime soon. In the meantime this "fix" shortens the macro expansion somewhat and, while it should not be necessary, is still helpful.

* Fix for appveyor.yml file

* Added VS2019 tests, also with new preprocessor. Further MPL Fixes for new preprocessor bug, which are also useful and will speed up preprocessing.

* Can't seem to test msvc-10.0 or msvc-11.0 any more with Appveyor

* Update description
2020-09-24 06:07:26 -04:00
Edward Diener
3d8a60ed6a Change __BORLANDC__ to BOOST_BORLANDC, which is defined in Boost config for the Embarcadero non-clang-based compilers. (#48)
Co-authored-by: Edward Diener <eldlistmailingz@tropicsoft.com>
2020-04-12 09:48:24 -07:00
tinko92
e01a10925d Replace three links that seem broken (keep timing out)
Fix broken sgi/stl links.
Fix broken gmane link.
2019-04-24 05:47:07 +10:00
Edward Diener
ac67f5952e Back out fix for VC++8.0 2018-11-14 11:54:53 -05:00
Robin Lindén
e44b2ae761 Fix BOOST_MPL_ASSERT_MSG for VC++8
The struct member function inside BOOST_MPL_ASSERT_MSG_IMPL was causing
multiple definitions of the same symbol when used inside e.g. template
functions.

An example of where this is a big issue is in the boost/geometry library
where you currently only can call each function once for each geometry
or you get hit by the multiple definitions linking error.

This fix* works around the issue by gracefully degrading to
BOOST_STATIC_ASSERT_MSG instead of failing during linking.
2018-08-20 19:23:02 +02:00
Romain Geissler
f48fd09d02 Ignore gcc 8 warnings. 2018-03-01 09:59:33 +01:00
David Olsen
a81b00a5f0 Update PGI C++ compiler support
Add PGI C++ to list of compilers that use enums rather than static constants for compile-time assertions, because, like GCC, PGI issues warnings for unused static constants.
2017-07-26 12:46:48 -07:00
Sergei Krivonos
525c773836 adding get_tag definition 2017-07-03 06:53:38 +03:00
morinmorin
869438d60b Fix "-Wc++11-extensions" warning on Clang in C++03 mode 2016-07-02 14:27:29 +09:00
akumta
1f64380f62 Update for Boost ticket #11594 2015-08-27 10:36:15 -07:00
Edward Diener
10e7609c67 Merge pull request #16 from brunocodutra/Tickets7975_8749
Fix to Tickets #7975 and #8749 - Branched off from develop. Please check regression tests to mak sure there are no problems caused by this fix.
2015-04-28 16:28:32 -04:00
Edward Diener
133a980224 Merge pull request #14 from brunocodutra/Ticket11001
Fix to Ticket #11001
2015-04-28 16:06:42 -04:00
Edward Diener
2531010a0a Added include for integral constant. 2015-04-02 08:00:13 -04:00
Edward Diener
90951ea9e4 Remove reliance on deprecated type_traits headers. Fixed apply test. 2015-04-02 07:54:36 -04:00
Bruno Dutra
eaa3f26c9c fixing the issue for empty_sequence's as well 2015-03-21 22:04:52 -03:00
Bruno Dutra
c8fe35643d Fix to Tickets #7975 and #8749
Originally Tickets 7975 and 8749 referred only to insertion of keys into
maps, but the very same bug can be reproduced for sets as well.
Moreover, the removal of keys from both also suffers of the same bug.
2015-02-22 20:59:59 -03:00
Bruno Dutra
f807edab2e Specializing insert_range for aux::set_tag as well
Follows the same rationale as for maps.
2015-02-21 19:42:38 -02:00
Bruno Dutra
fc18efc259 Specializing insert_range for aux::map_tag
Taking advantage of the fact that order of insertion doesn't really
matter for associative sequences.
Comparing to the default implementation, which at any rate does work for
associative sequences, this specialization essencially avoids
reinserting every element of Sequence into a new sequence, besides the
fact no joint_view nor iterator_range needs to be instantiated.
2015-02-10 20:59:54 -02:00
Bruno Dutra
c7798600d6 Inserting elements at the beginning of Sequence, rather than at the end
This way we take advantage of the constant-time insertion and removal of
elements at the beginning of Front Extensible sequences, such as list.
This implementation is closer to the original.
2015-02-09 20:48:55 -02:00
Bruno Dutra
1c02715e49 Fix to bug 11001
According to reference, insert_range should work for any Extensible
sequence or Extensible Associative sequence, but the default
implementation of insert_range_impl assumes a front_inserter is defined
for the given sequence, but neither Extensible nor every Extensible
Associative sequences are required to also be a Front Extensible
sequence. This fix rely only on insert, which is defined for every
Extensible sequence.
2015-02-09 00:04:07 -02: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
Andrey Semashev
c7997e039d Moved compiler.hpp to MPL.Core to avoid circular dependency. 2014-09-16 15:43:08 +04:00
Andrey Semashev
6064a97e3a Moved sizeof.hpp to core components. 2014-08-31 14:41:53 +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
Eric Niebler
aec459a49c add back the has_xxx workaround for msvc if used with nvcc 2014-07-07 15:47:06 -07:00
Eric Niebler
6893e5e5de eliminate unnecessary workaround for modern msvc versions 2014-06-26 22:25:53 -07:00
Peter Dimov
0b6167c840 Remove dependency on Detail by using Predef directly. 2014-06-05 00:23:41 +03:00
Paul
ed58434c88 Add constexpr to conversion operator for bool integral constants 2014-05-16 07:49:35 -06:00
Paul
1f482c4fa1 Add constexpr to conversion operator for integral constants 2014-05-16 07:49:34 -06:00
Eric Niebler
7f823bec1c mpl::for_each works on nvidia gpu's 2014-05-01 15:38:13 -07:00
Robert Ramey
de26efa6ea added mol print functionally for Clang compiler 2014-03-26 12:41:20 -07:00
Daniel James
db7e720ce1 Revert Stephen Kelly's changes.
They should really wait until MPL's dependencies have dealt with his
changes.
2014-03-25 08:33:44 +00:00
Edward Diener
cccddd65c7 In clang using VC++ RTL the VC++ macros are keywords.
[SVN r86682]
2013-11-13 17:38:31 +00:00