Commit Graph
97 Commits
Author SHA1 Message Date
Kohei Takahashi b4afa1c69b It's not a trivially copyable unless all elems are 2018-05-08 00:38:10 +09:00
Kohei Takahashi b978b47952 Merge upstream branch 'develop' into optimization/vector-and-tuple 2018-05-07 12:27:46 +09:00
Kohei Takahashi a273cd8131 Added workaround for msvc-14.x 2018-04-19 00:21:41 +09:00
Kohei Takahashi e962c1abb5 Fixed vector compile error with C-style array 2018-04-18 22:31:35 +09:00
Kohei Takahashi 9536909a3a Remove redundant argument. 2018-03-14 16:02:07 +09:00
Kohei Takahashi 47070610d0 Remove unnecessary user defined ctor
there is no reasons defining those probably.

This change allows to be vector trivially copyable iff all elements are
trivially copyable, i.e. following static assert now passes.

```cpp
static_assert(std::is_trivially_copyable<vector<double, int>>{});
```
2018-03-14 15:15:33 +09:00
Nikita Kniazev 38818fbe3d Add limits precheck 2018-02-20 22:44:34 +03:00
Nikita Kniazev 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
Kohei Takahashi b12c6b6af6 Regenerate preprocessed files. 2017-11-23 22:59:02 +09:00
Kohei Takahashi 4eda545405 Fixed a regression with msvc 10/11/12 defect 2017-11-23 22:48:11 +09:00
Kohei Takahashi 0e0de6c4f1 Regenerate preprocessed files. 2017-10-15 07:10:25 +09:00
Kohei Takahashi dfe08dec2c Fixed incorrect overload resolution.
Those functions should not be chosen for copying/moving.
2017-10-14 02:34:44 +09:00
Kohei Takahashi e606ceeff0 Improve vector value_at performance. 2017-10-07 14:18:29 +09:00
Kohei Takahashi 24d1c7fd1a Reduce type deduction which is already known. 2017-10-04 01:43:45 +09:00
Kohei Takahashi e5d073d786 Use compiler generated ctor. 2017-10-04 01:30:27 +09:00
Kohei Takahashi 6a9b7f314d Remove unnecessary base check.
fusion::tuple doesn't inherit from fusion::vector now.
2017-10-04 01:13:26 +09:00
Kohei Takahashi 451e21adb3 Update workarounds for msvc 14.1 2017-04-30 23:26:24 +09:00
Lee Clagett 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
Lee Clagett 55150a7fa6 Add DISABLE_VARIADIC_VECTOR and SFINAE for c++11 tuple element construction 2016-07-26 14:53:26 -04:00
Lee Clagett 79d8e9d11c Added to nested tests, and fixed C++11 vector copy-from-sequence 2016-05-31 16:52:57 -04:00
Kohei Takahashi 104f508cef Remove outdated comment. 2016-03-07 19:42:23 +09:00
Kohei Takahashi b46aad996a Remove trailing void_ support on variadic vector. 2016-02-11 23:56:07 +09:00
Kohei Takahashi 64b8406c16 Introduce detail::enabler instead of fusion::void_. 2015-12-10 17:06:04 +09:00
Kohei Takahashi 2492ff9b25 regen 2015-12-01 01:26:08 +09:00
Kohei Takahashi 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
Charly Chevalier 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
Charly Chevalier 74c0d5d0ec Fix fusion::at<vector<...>, N> for C array types 2015-11-10 10:55:13 +01:00
Louis Dionne 4d3891ed31 Remove invalid odr-usages of boost::declval. 2015-11-07 16:11:06 -05:00
Kohei Takahashi 4d5da0371b Suppress undefined inline function warning. 2015-10-27 07:59:55 +09:00
Kohei Takahashi 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
Joel de Guzman 18742c6922 Merge pull request #105 from boostorg/variadics
Merge variadics into develop.
2015-10-22 15:40:04 +08:00
Kohei Takahashi 1ad2e59e07 Make fusion::at<vector<...>,N> O(1). 2015-10-20 20:12:14 +09:00
Kohei Takahashi c750552a02 Tweak coding style. 2015-10-06 11:28:16 +09:00
Kohei Takahashi e37fd170ce Preprocessing... 2015-07-28 01:02:41 +09:00
Kohei Takahashi 298eeef9c9 Remove evil numbered_vector_tag. 2015-06-30 01:28:01 +09:00
Kohei Takahashi f9fda7ce06 Remove intermediate specialization. 2015-06-28 19:42:08 +09:00
Kohei Takahashi 969b475462 Implement variadic templates based fusion::vector.
Thanks to Lee Clagett.
2015-06-28 01:15:51 +09:00
Kohei Takahashi d937003962 Prepare implementing c++11 variadic based fusion::vector. 2015-06-28 01:15:51 +09:00
Kohei Takahashi ddcd3cdf93 Likewise. 2015-06-17 01:40:45 +09:00
Kohei Takahashi 78afb4d3fc Likewise. 2015-06-14 23:05:06 +09:00
Kohei Takahashi 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
Kohei Takahashi 83a08934c8 Prepare to merge 2015-04-19 11:56:21 +09:00
Damien Buhl alias daminetreg 0954000314 After merge of #55 regenerated preprocessed headers as needed by #49. 2015-03-06 14:51:52 +01:00
Kohei Takahashi f45c94fa43 Merge remote-tracking branch 'origin/develop' into feature/constexpr 2015-03-04 02:20:52 +09:00
Kohei Takahashi 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
Kohei Takahashi 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
Kohei Takahashi f872d1326a The ctor should check which is seqence or not. 2015-01-11 01:15:52 +09:00
Joel de Guzman 97c863eaa0 (Re)Generating preprocessed files. 2015-01-05 15:03:54 +08:00
Kohei Takahashi 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
Kohei Takahashi 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