Commit Graph

219 Commits

Author SHA1 Message Date
b4afa1c69b It's not a trivially copyable unless all elems are 2018-05-08 00:38:10 +09:00
b978b47952 Merge upstream branch 'develop' into optimization/vector-and-tuple 2018-05-07 12:27:46 +09:00
e8da43a539 Added workaround for gcc 4.6 with C array 2018-04-26 00:02:57 +09:00
c4881f1862 Merge upstream branch 'develop' into more-ci-targets 2018-04-22 03:41:55 +09:00
a273cd8131 Added workaround for msvc-14.x 2018-04-19 00:21:41 +09:00
dd695c1dbd Fixed a compile error bug similar to previous vector's one 2018-04-18 22:38:09 +09:00
e962c1abb5 Fixed vector compile error with C-style array 2018-04-18 22:31:35 +09:00
9536909a3a Remove redundant argument. 2018-03-14 16:02:07 +09:00
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
9de3272174 Added workaround for GCC 4.4/c++0x
Teh call of ctor is ambiguous since gcc 4.4 allows binding rvalue to lvalue reference.
2018-03-06 00:40:41 +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
099333b61d map: Switch to SFINAE in template parameters
Fixes #163.

Since C++11 we can do SFINAE in template parameters. VS2017 15.5 doesn't like
the SFINAE on argument here, but do not ask me why, because I have no idea.
2017-12-14 00:05:28 +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
984fcfd276 Delete needless overload. 2017-10-14 03:18:47 +09:00
62f5ccac53 Fixed compile error on copy construction. 2017-10-14 03:16:44 +09:00
cf33f3db4e Added copy assign to deque(03).
move ctor will delete defaulted copy assign.
2017-10-14 03:16:00 +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
9cb23af898 Remove circular preprocessor include 2017-09-02 16:09:12 +02:00
451e21adb3 Update workarounds for msvc 14.1 2017-04-30 23:26:24 +09:00
c630611626 Fix returing temporary variable warning on MSVC. 2016-11-01 01:54:10 +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
a81024f617 Regenerate preprocessed files. 2015-10-17 11:24:19 +09:00
ce4ccb929c Check the argument being fusion sequence or not. 2015-10-08 22:23:10 +09:00
5114d9419e Drop unnecessary ctor. 2015-10-07 17:40:55 +09:00
ca0d92e68d R-value references are now container-wide requirements. 2015-10-06 21:29:02 +09:00
c750552a02 Tweak coding style. 2015-10-06 11:28:16 +09:00
c30fabf98f Apply 7fdb320 change into C++98 interface. 2015-08-30 17:13:36 +09:00
e61d08d953 Fix broken convert<deque_tag>, close issue 11572. 2015-08-26 00:20:07 +09:00
d9e5a620be Merge pull request #97 from Flast/feature/variadic/set
Variadics for fusion::set.
2015-08-20 21:57:19 +08:00