Commit Graph

93 Commits

Author SHA1 Message Date
a273cd8131 Added workaround for msvc-14.x 2018-04-19 00:21:41 +09:00
e962c1abb5 Fixed vector compile error with C-style array 2018-04-18 22:31:35 +09:00
38818fbe3d Add limits precheck 2018-02-20 22:44:34 +03:00
39fb05e40f vector: Fix for compilers not compatible with CWG defect 945
http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#945
2017-12-23 18:17:04 +03:00
b12c6b6af6 Regenerate preprocessed files. 2017-11-23 22:59:02 +09:00
4eda545405 Fixed a regression with msvc 10/11/12 defect 2017-11-23 22:48:11 +09:00
0e0de6c4f1 Regenerate preprocessed files. 2017-10-15 07:10:25 +09:00
dfe08dec2c Fixed incorrect overload resolution.
Those functions should not be chosen for copying/moving.
2017-10-14 02:34:44 +09:00
e606ceeff0 Improve vector value_at performance. 2017-10-07 14:18:29 +09:00
24d1c7fd1a Reduce type deduction which is already known. 2017-10-04 01:43:45 +09:00
e5d073d786 Use compiler generated ctor. 2017-10-04 01:30:27 +09:00
6a9b7f314d Remove unnecessary base check.
fusion::tuple doesn't inherit from fusion::vector now.
2017-10-04 01:13:26 +09:00
451e21adb3 Update workarounds for msvc 14.1 2017-04-30 23:26:24 +09:00
5906d9c316 Make C++11 fusion::vector more consistent with C++03 fusion::vector
- Construct from elements is enabled iff each argument is_convertible to
    corresponding element.
  - Construct from sequence is enabled iff the single argument is a fusion
    sequence.
  - C++11 vector and tuple also disable construct from sequence that are
    shorter than the destination. C++03 gives incorrect is_convertible
    responses in this situation and fails to compile if that constructor is
    used; C++11 can have instantation errors in
    and_<is_convertible<U, T>...> without the additional check.
  - C++11 tuple and vector support truncation conversion and assignment like
    all other sequences.
2016-08-26 12:45:11 -04:00
55150a7fa6 Add DISABLE_VARIADIC_VECTOR and SFINAE for c++11 tuple element construction 2016-07-26 14:53:26 -04:00
79d8e9d11c Added to nested tests, and fixed C++11 vector copy-from-sequence 2016-05-31 16:52:57 -04:00
104f508cef Remove outdated comment. 2016-03-07 19:42:23 +09:00
b46aad996a Remove trailing void_ support on variadic vector. 2016-02-11 23:56:07 +09:00
64b8406c16 Introduce detail::enabler instead of fusion::void_. 2015-12-10 17:06:04 +09:00
2492ff9b25 regen 2015-12-01 01:26:08 +09:00
12792a6c11 Fix compile error with ambiguous ctor, close #11766.
When a) first elem is sequence b) second (and third) elem is(are) void*,
both of conversion ctor and forwarding ctor are candidate since SFINAE
expression has void* type.
2015-12-01 01:14:52 +09:00
3298875ecc Add double identity trick for fast value_at (vectors)
This is a workaround to make decltype(expr)::type compiles
with old compilers.
2015-11-10 14:04:16 +01:00
74c0d5d0ec Fix fusion::at<vector<...>, N> for C array types 2015-11-10 10:55:13 +01:00
4d3891ed31 Remove invalid odr-usages of boost::declval. 2015-11-07 16:11:06 -05:00
4d5da0371b Suppress undefined inline function warning. 2015-10-27 07:59:55 +09:00
73045b4d49 Fix compile error on by-elem ctor.
Single element vector of fusion sequence cannot construct from its
element type.
2015-10-23 08:29:05 +09:00
18742c6922 Merge pull request #105 from boostorg/variadics
Merge variadics into develop.
2015-10-22 15:40:04 +08:00
1ad2e59e07 Make fusion::at<vector<...>,N> O(1). 2015-10-20 20:12:14 +09:00
c750552a02 Tweak coding style. 2015-10-06 11:28:16 +09:00
e37fd170ce Preprocessing... 2015-07-28 01:02:41 +09:00
298eeef9c9 Remove evil numbered_vector_tag. 2015-06-30 01:28:01 +09:00
f9fda7ce06 Remove intermediate specialization. 2015-06-28 19:42:08 +09:00
969b475462 Implement variadic templates based fusion::vector.
Thanks to Lee Clagett.
2015-06-28 01:15:51 +09:00
d937003962 Prepare implementing c++11 variadic based fusion::vector. 2015-06-28 01:15:51 +09:00
ddcd3cdf93 Likewise. 2015-06-17 01:40:45 +09:00
78afb4d3fc Likewise. 2015-06-14 23:05:06 +09:00
e0f10734b1 Fix issue 11267.
Compiler yields compile error within a function witch used in unevaluate
context of constexpr function because of CWG 1581 [2].

1. https://llvm.org/bugs/show_bug.cgi?id=23135
2. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#1581
2015-06-08 11:53:17 +09:00
83a08934c8 Prepare to merge 2015-04-19 11:56:21 +09:00
0954000314 After merge of #55 regenerated preprocessed headers as needed by #49. 2015-03-06 14:51:52 +01:00
f45c94fa43 Merge remote-tracking branch 'origin/develop' into feature/constexpr 2015-03-04 02:20:52 +09:00
2114bfca6c More constexpr and noexcept support.
Note 1: Forwarding functions are specified as a C++14 constexpr since
std::forward is not a constexpr within C++11.

Note 2: Though I'm not sure why it doesn't compile, some declarations
are specified as a C++14 constexpr or non-constexpr.

Note 3: Boost.Tuple adaptation and TR1-based tuple implementations are
not constexpr.
2015-03-03 02:21:02 +09:00
6ab68a29d8 Workaround for LWG 2408: SFINAE-friendly std::iterator_traits.
Now available for GCC(libstdc++v3) < 4.5 and MSVC 12.0.
It means, there is no ambiguous about calling next/prior/... via ADL.
2015-02-05 23:04:36 +09:00
f872d1326a The ctor should check which is seqence or not. 2015-01-11 01:15:52 +09:00
97c863eaa0 (Re)Generating preprocessed files. 2015-01-05 15:03:54 +08:00
9ab7774fd7 Replace some usage of std::forward to static_cast.
For more details, See inline comment of include/boost/fusion/support/config.hpp .
2014-11-26 01:35:55 +09:00
9075da0790 Mitigate too noisy name-hiding warnings (C4453) on VS2015 Preview.
NOTE: This commit doesn't contain new preprocessed file to review easier.
2014-11-19 13:20:36 +09:00
1b4acaa1b0 Fix unexpected lookup failure with GCC < 4.5. 2014-11-01 21:16:26 +09:00
c04e912866 gpu-enable vector assign 2014-01-23 21:48:52 -08:00
125a8b5957 Merge remote-tracking branch 'upstream/develop' into gpu-enabled-2 2014-01-23 21:30:44 -08:00
e5b0f3c2e1 gpu-enable more functions, but not stream inserters and extractors 2014-01-23 21:30:18 -08:00