273 Commits

Author SHA1 Message Date
f632a98e84 Merge pull request #24 from TartanLlama/swappable
Swappable
2019-04-26 13:45:14 +01:00
9399c30330 Correct MSC_VER check 2019-02-19 14:58:36 +00:00
d2c6fa68c7 Move is_swappable implementation, correct MSC_VER check 2019-02-19 14:58:09 +00:00
dff20e9c9f Merge pull request #22 from ThePhD/patch-1
[ constructors ] prevent empty optional access
2019-02-19 11:00:02 +00:00
7ef0154330 Use correct is_swappable implementation for VS2017+ 2019-02-19 10:57:43 +00:00
4304148904 Turn docs off by default
Fixes #20
2019-02-19 09:51:23 +00:00
1de2f2a49c [ constructors ] prevent empty optional access
optional types being taken in were forwarding their values without checking, resulting in segfaults on optional<U> -> optional<T> conversions. This fixes those problems in the constructors.
2019-02-13 09:00:07 -05:00
5d3d6c399a Add email address
Fixes #18
2019-02-11 11:38:24 +00:00
1baad184f0 Merge pull request #17 from johvik/patch-1
Return value() in noexcept emplace
2019-01-23 08:45:04 +00:00
c194f73a07 Return value() in noexcept emplace 2019-01-23 08:38:31 +01:00
47b120fd53 Merge pull request #16 from DecoyRS/patch-1
Misaligned template specifiers
2018-11-23 08:35:39 +00:00
99b2a15863 Misaligned template specifiers
Tried to compile with CLion + CLang + WSL, got error pointing to this place. Looks like a copy-paste error )
2018-11-22 22:49:33 +03:00
dc02563d7b Update version v0.5 2018-11-09 15:34:16 +00:00
3449fbc904 Fix #15 2018-10-12 13:34:03 +01:00
b53059c63d Fix macro issue 2018-09-06 09:34:05 +01:00
25f8f28a9a Workaround MSVC2015 bug 2018-09-03 14:55:54 +01:00
6c5e6d6477 More Clang fixes 2018-09-03 14:30:07 +01:00
4d5453bc56 Add missing define 2018-09-03 13:49:56 +01:00
068d3db664 Workaround libcxx issue 2018-09-03 12:10:22 +01:00
fd6c65e7f9 Merge branch 'master' of github.com:TartanLlama/optional 2018-09-03 09:09:57 +01:00
aecb8fe6db Fix #14 2018-09-03 09:09:47 +01:00
0d449821ca Merge pull request #13 from mortenfyhn/master
Add syntax highlighting to readme
2018-08-31 15:25:41 +01:00
6738107bae Add syntax highlighting to readme 2018-08-31 16:15:55 +02:00
8b1c3fb67f Fix the other bad comment 2018-08-22 15:50:43 +01:00
dd8ab0232e Fix trivially destructible comment 2018-08-22 15:22:43 +01:00
dc129ecf10 Only include vector workaround if vector is included 2018-08-22 15:22:16 +01:00
bf0efe1625 Add vector workaround mutex 2018-08-22 15:21:31 +01:00
9df8d1be39 Support std::vector of non-copyable types 2018-08-14 09:56:31 +01:00
35e4c6e889 Remove unneeded file 2018-07-25 16:03:01 +01:00
aa74eb709f Add emplace test 2018-07-11 14:32:25 +01:00
5dd9ed7e2c Merge pull request #10 from kbenzie/cmake_subdirectory
Play nice with CMake add_subdirectory
2018-06-08 10:51:01 +01:00
48d70a1604 Play nice with CMake add_subdirectory
Enable use of `tl::optional<T>` purely as a library with CMake's
`add_subdirectory`. The default configuration works are before.

* `OPTIONAL_ENABLE_TESTS` make building tests optional, enabled by default
* `OPTIONAL_ENABLE_DOCS` make building documentation optional, enabled by default
2018-06-08 10:45:19 +01:00
c8a6658f9f Remove GCC5.5 from test 2018-06-07 09:23:52 +01:00
04b817f0d3 Correct GCC5.5 macro 2018-06-07 09:05:39 +01:00
6e8235c085 Remove GCC5.5 from constexpr tests 2018-06-07 08:54:43 +01:00
b3b2715a95 Remove GCC5.5 from constexpr tests 2018-06-07 08:28:29 +01:00
90b00674dd More C++14 void fixes 2018-06-06 13:54:12 +01:00
e0a542f960 More GCC 5.5 fixes 2018-06-06 11:24:10 +01:00
b72cc392b6 Typo 2018-06-06 11:14:36 +01:00
9f01853678 Update readme 2018-06-06 10:46:34 +01:00
d9d1a54abc Test GCC 5.5 2018-06-06 10:27:54 +01:00
0dd57d441c Merge branch 'master' of github.com:TartanLlama/optional 2018-06-06 10:27:13 +01:00
9a1b033113 Fix GCC 5.5 2018-06-06 10:27:08 +01:00
d67e7c2eac Merge pull request #9 from rollbear/master
'optional<T&>::and_then(F&& f) &&' calls f with lvalue reference
2018-06-04 22:34:48 +01:00
e8b28f2e34 and the obligatory fixup for C++-11 :-) 2018-06-03 15:01:57 +02:00
5143f9577a 'optional<T&>::and_then(F&& f) &&' calls f with lvalue reference
This makes sense. The 'optional' is an rvalue, but its contained type
remains an lvalue reference. I.e.

int i = 3;
optional<int&>{i}.and_then([](int& r){return optional<int&>{++r});

The optional r-value still refers to 'i', which is not an r-value.
2018-06-03 12:09:17 +02:00
f82f78b5b6 Update supported compilers 2018-05-28 22:22:28 +01:00
3a20e3f8cd Update travis compilers 2018-05-28 22:08:15 +01:00
779cf10329 Qualify call to detail::invoke so that std::invoke isn't picked up due to ADL in C++17 2018-05-28 21:46:58 +01:00
effc941116 Fix warnings 2018-04-11 15:54:58 +01:00