jzmaddock
014ac72782
Switch to a centralised macro for binary operator traits implementation selection.
2018-02-10 17:40:39 +00:00
jzmaddock
7d42b545e9
Merge pull request #62 from glenfe/develop
...
For MSVC2017 use detector_t instead of make_void
2018-02-10 11:59:38 +00:00
jzmaddock
3a0382ccbe
Merge pull request #64 from boostorg/issue_13012
...
Improve binary operators.
2018-02-10 11:45:32 +00:00
John Maddock
fb4430512d
Fix up -= and += detection for clang.
2018-02-09 18:20:23 +00:00
John Maddock
94e54c030d
binary operators: disable new code for older gcc versions
2018-02-08 19:21:13 +00:00
jzmaddock
98d6eaf1e9
Add missing function bodies to test cases - it suppresses gcc warnings.
2018-02-08 09:02:05 +00:00
jzmaddock
e9399adefa
Add tests for improved binary operators.
2018-02-07 19:50:26 +00:00
jzmaddock
e4d3cba6dd
Binary Operators: switch to the "detection idiom" if the compiler supports it.
...
This gives us almost perfect fidelity in the detection and solves the known issues for binary operators.
Also fixes: https://svn.boost.org/trac10/ticket/13012 .
2018-02-07 19:14:50 +00:00
jzmaddock
fdf9b67335
is_complete: correct namespace names.
2018-02-07 18:03:08 +00:00
jzmaddock
ed21a2d9c7
is_complete: no std::declval in gcc-4.4 and earlier.
...
So disable in that case.
2018-02-07 18:00:06 +00:00
Glen Fernandes
b406b574a5
For MSVC2017 use detector_t, instead of make_void.
...
(Not using boost::void_t to workaround a VC12 defect)
2018-02-06 22:16:52 -05:00
jzmaddock
6d294b5ff2
is_complete: qualify the detail namespace as otherwise it can trip up msvc-14.0.
2018-02-05 12:05:15 +00:00
jzmaddock
23520c13a1
Merge pull request #61 from boostorg/issue12285
...
Assert when we try to use an incomplete type on a trait which require…
2018-02-04 19:27:23 +00:00
jzmaddock
df4eccb911
Document is_complete.
...
[CI SKIP]
2018-02-04 19:26:10 +00:00
jzmaddock
0886e13a99
Assert completeness fixes: fix up msvc failures.
2018-02-04 18:15:34 +00:00
jzmaddock
bfb6384a0a
Assert on incomplete types: begin fixing test failures for msvc-12.0, 14.0, and clang.
2018-02-04 12:52:24 +00:00
jzmaddock
ac351390b2
Assert when we try to use an incomplete type on a trait which requires complete types as arguments.
...
This prevents some traits from doing the wrong thing (ie compiling but giving the wrong answer when handed an incomplete type.
See https://svn.boost.org/trac10/ticket/12285 .
A by-product of this is we add is_complete as a new trait.
2018-02-04 10:03:30 +00:00
jzmaddock
85a03d3453
Fix integral_constant.hpp for the case where the user has explicitly defined BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE.
...
Fixes: https://svn.boost.org/trac10/ticket/12212
2018-02-03 16:18:12 +00:00
jzmaddock
33bd73e26d
Add macro to indicate when is_constructible is fully implemented.
...
Fixes: https://svn.boost.org/trac10/ticket/12003
[SKIP CI]
2018-02-02 19:24:52 +00:00
jzmaddock
30b029d937
Fix typos in is_mem_fun_pointer_tester.hpp.
...
See https://svn.boost.org/trac10/ticket/11884
[SKIP CI]
2018-02-02 19:18:18 +00:00
jzmaddock
f5823d6732
type_traits:function type testing, change to explicit noexcept specifiers as clang-4 can't handle partial-specialisation on noexcept(bool).
...
Also reinstate and test support for functions with ellipsis.
2018-02-02 18:17:03 +00:00
jzmaddock
c8c95f18ca
type_traits: function types, update to detect functions with exception specifications in is_function and is_member_function_pointer.
2018-02-01 19:14:30 +00:00
jzmaddock
b78fd5f29d
Type_traits.detection idiom: flesh out docs and add history.
2018-01-31 18:55:04 +00:00
Glen Fernandes
35c105501b
Implement detection idiom toolkit
2018-01-28 09:40:24 -05:00
jzmaddock
5d5c651ea6
Type_traits.is_default_constructible: workaround for std::pair is required for more compilers. We don't need functional appveyor.yml any more.
2018-01-28 10:44:12 +00:00
jzmaddock
05c4fdcabb
Merge branch 'feature/container_hash' of https://github.com/danieljames/type_traits into develop
...
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2018-01-28 10:40:14 +00:00
John Maddock
7beb519980
GCC-5.x also needs workaround for std::pair issue
2018-01-27 18:31:28 +00:00
John Maddock
a6e879f091
Add tests and tentative fix for issue with clang mis-identifying pairs of non-constructible types. See github #51 .
2018-01-25 13:18:38 +00:00
jzmaddock
5ed289c317
Update docs.
2018-01-25 10:56:23 +00:00
jzmaddock
837fe4d245
Merge pull request #57 from danieljames/develop
...
Fallback for is_nothrow_swappable on pre-C++11
2018-01-25 10:44:12 +00:00
Daniel James
3e9608230c
Fallback for is_nothrow_swappable on pre-C++11
2017-11-28 22:12:01 +00:00
jzmaddock
1146f73070
Travis.yml: Correct use of "cxxstd-dialect".
2017-10-28 16:56:08 +01:00
jzmaddock
af2546ae5c
travis.yml: need to unset IFS before b2 invocation.
2017-10-28 08:25:13 +01:00
jzmaddock
3530a015ed
One more try with travis.yml: remove ":" from command line as travis mangles it.
2017-10-27 17:18:19 +01:00
jzmaddock
4cd7655730
Correct travis.yml syntax one more time.
2017-10-27 08:31:49 +01:00
jzmaddock
4ac0c52b66
Merge pull request #50 from Lastique/fix_clang30_decltype
...
Add a workaround for clang 3.0 not supporting decltype in base class list
2017-10-26 18:34:02 +01:00
jzmaddock
9ee7745626
Merge pull request #47 from kuhlenough/develop
...
VxWorks has double align issues similar to unix
2017-10-26 18:32:02 +01:00
jzmaddock
51c82dc0fe
Merge pull request #46 from tanzislam/fix_detail_namespace_for_borland
...
Fix 'detail' namespace opening for Borland
2017-10-26 18:28:24 +01:00
jzmaddock
73fd7479dd
Type_traits: try using --hash on the Appveyor b2 command line as we appear to be exceeding the max path length.
2017-10-26 18:09:49 +01:00
jzmaddock
ceaddeef42
Type_traits: correct travis.yml.
2017-10-26 11:27:44 +01:00
jzmaddock
bb94535ba8
Type_traits: add CI defines to Jamfile. Update travis script to build multiple configurations at once for faster build times.
2017-10-25 19:10:02 +01:00
Andrey Semashev
455e6129be
Added a workaround for clang 3.0 not supporting decltype in base class list.
...
Use an additional proxy class to define the base class using decltype in a
typedef, which is supported by the compiler, judging by Boost.Config tests.
2017-09-19 14:51:45 +03:00
Tanzinul Islam
7bc78f51ff
Move the detail namespace entirely within the #ifndef __BORLANDC__-block.
2017-09-08 21:37:03 +01:00
jzmaddock
b23f18cac2
is_complex.hpp: include boost/config.hpp first so we get compiler specific workarounds prior to including std lib headers.
2017-09-07 18:09:53 +01:00
Brian Kuhl
d6f2dd9186
Whoops, updating intrinsics.hpp again
2017-09-06 10:33:34 -04:00
Brian Kuhl
dfaad9ed21
Update intrinsics.hpp
2017-09-05 23:54:19 -04:00
Brian Kuhl
54f3c61f08
VxWorks has double align issues similar to unix
...
but only on 32bit IA
2017-09-05 23:46:58 -04:00
Tanzinul Islam
907bbbb759
Fix 'detail' namespace closing for Borland
...
In `type_with_alignment.hpp`, the `boost::detail` namespace is opened in line 28 just before starting the main `#ifndef __BORLANDC__`-block at line 30. The `detail` namespace is closed within the `#ifndef`-block at line 79. Highlight that namespace closing-brace with a comment for visibility.
Furthermore, the main `#ifndef __BORLANDC__`-block has a `#else`-case beginning at line 209, which effectively begins the `boost::detail` namespace at that point. This continuation of the namespace was missing a closing brace, causing a compilation failure with C++Builder (due to not finding `::boost::tt_align_ns::a16` in line 230, but merely finding `::boost::detail::tt_align_ns::a16`). Add that closing brace in line 217 with a visibility comment, just before opening the `tt_align_ns` namespace (which is expected by existing code to be directly inside the `boost` namespace, and not inside `boost::detail`).
2017-08-27 15:15:31 +01:00
jzmaddock
06d07e3d11
Merge pull request #44 from boostorg/2017_07_21
...
Cherry pick fixes from develop for Boost-1.47
2017-07-21 18:27:30 +01:00
jzmaddock
d17304143e
Merge branch 'develop' into 2017_07_21
2017-07-21 13:38:00 +01:00