Граф коммитов

333 Коммитов

Автор SHA1 Сообщение Дата
Stephan T. Lavavej c8144e3a03
Require VS 2019 16.7 Preview 2 or later. (#911) 2020-06-24 00:12:51 -07:00
Berrysoft 5d4f4afbed
Fix std::pow's "sufficient additional overloads" (#903)
Fixes #890.

Co-authored-by: Stephan T. Lavavej <stl@microsoft.com>
2020-06-23 23:53:04 -07:00
Casey Carter f1515e04fd
Internal headers have extension .hpp (#902) 2020-06-23 23:45:44 -07:00
Casey Carter 70d23a16a6
Implement ranges::is_permutation (#892)
Co-authored-by: mnatsuhara <46756417+mnatsuhara@users.noreply.github.com>
Co-authored-by: Stephan T. Lavavej <stl@microsoft.com>
2020-06-23 23:35:02 -07:00
Michael Schellenberger Costa 569efaba62
Simplify span's representation (#877)
Fixes #874.

Co-authored-by: Casey Carter <Casey@Carter.net>
Co-authored-by: Stephan T. Lavavej <stl@microsoft.com>
2020-06-23 23:26:27 -07:00
Daniel Marshall de3edf22b2
P0896R4_P1614R2_comparisons/test.cpp: Increase test coverage for MSVC (#852)
Fixes #741.

Co-authored-by: Casey Carter <Casey@Carter.net>
Co-authored-by: Stephan T. Lavavej <stl@microsoft.com>
2020-06-23 23:15:38 -07:00
Stephan T. Lavavej 0c34074955
tests: Avoid dialog boxes, prevent stdout from being lost (#906)
Fixes GH-781 (dialogs) and fixes GH-789 (stdout).
2020-06-20 00:28:45 -07:00
Casey Carter 65df32eb73
Implement ranges::_Ubegin and ranges::_Uend CPOs (#901)
Fixes #898.
2020-06-20 00:21:42 -07:00
Stephan T. Lavavej 5813b85aa2
Code cleanups in stl/src (#900) 2020-06-20 00:10:56 -07:00
Casey Carter 7c0310e1d3
Cleanup ranges test machinery (#899) 2020-06-20 00:03:17 -07:00
Hikmat Farhat 44c22f30ac
Updated _MSVC_STL_UPDATE macro (#897)
Fixes #895.
2020-06-19 23:58:24 -07:00
ahanamuk e507f7de17
<algorithm>: Implemented ranges::move (#888)
Co-authored-by: Casey Carter <Casey@Carter.net>
2020-06-19 23:50:20 -07:00
Curtis J Bezault 42a82716f5
Update VMSS pool to VS 2019 16.7 Preview 2 (#851) 2020-06-19 23:38:02 -07:00
Jonathan Emmett 0cdf5fbfac
Library support for C++20 coroutines (#894)
* Library support for C++20 coroutines

Implements most of <coroutine>. Usefulness of this header is dependent
on a compatible compiler (e.g. Visual Studio 2019 16.8 Preview 1 or
later) that defines `__cpp_impl_coroutine`. With such a compiler
this header exposes the coroutine library support in the `std` namespace
without the need for an `/await` switch.

This implementation is not yet complete:

- noop coroutines are not yet implemented
- symmetric transfer is not yet implemented

The value of `__cpp_lib_coroutine` is defined to a value less than the
Standard-mandated value to represent the incomplete feature.

Co-authored-by: Daniel Marshall <xandan@gmail.com>
2020-06-17 09:08:37 -07:00
Casey Carter c64e60bae8
The problem with Clang's tgmath.h is now tracked as LLVM-46207 (#881) 2020-06-11 14:12:01 -07:00
Casey Carter 2b0aa05918
<optional>: Don't zero storage in default constructor (#878)
* <optional>: Don't zero storage in default constructor

Providing a minor runtime and codesize benefit.
2020-06-11 14:10:57 -07:00
Casey Carter cff9e842fc
Rework test_range/test_iterator Ranges test machinery (#875)
* Rework test_range/test_iterator Ranges test machinery

These were previously compile-only tools intended for instantiation tests, but they can now adapt a contiguous sequence of elements into a range with specified properties for runtime testing. Nest in namespace `test` as `test::range` and `test::iterator`. Add `test::sentinel` to use with `test::iterator` to make non-`common_range`s. `test::iterator` and `test::range` now enforce valid combinations of parameters instead of silently ignoring inconsistencies. `test::iterator`/`test::sentinel` now have "wrapped" and "unwrapped" variations to test use of unwrapping machinery in the Range algorithms. `move_only_range` is now a special case of `test::range`. Adds new test `std/P0896R4_ranges_test_machinery` for this stuff since it's getting complicated.

* Unnest test::proxy_iterator so wrapped and unwrapped proxy iterators can have the same reference type

* More refinement:
* flesh out `proxy_reference`
* make element type configurable in instantiation machinery
* give `test::iterator` proper moves
* tiny bit of test coverage

* Name some bools
2020-06-11 14:05:20 -07:00
Sumit Bhardwaj aae2fd2f0a
Fix not unlocking and relocking in condition_variable_any::wait_for (#685) 2020-06-11 14:02:52 -07:00
Stephan T. Lavavej 7447ad59d6
Link with /MANIFEST:EMBED to avoid UNRESOLVED tests (#862)
Fixes #811.
2020-05-29 19:06:09 -07:00
Billy O'Neal c6e0592c14
Use a cryptographically secure RNG to generate admin passwords. (#868) 2020-05-29 17:56:49 -07:00
Stephan T. Lavavej 40c3f1fe9a
Code cleanup: avoid macro-like identifiers, remove double newlines (#865) 2020-05-29 17:51:28 -07:00
Stephan T. Lavavej d103c08c50
tests: Note unsupported locales, but don't warn. (#866)
Fixes #855.
2020-05-29 17:48:30 -07:00
Stephan T. Lavavej 191b184004
_CONSTEXPR20 _Copy_s, simplify char8_t compare. (#861) 2020-05-29 17:41:49 -07:00
Casey Carter 3ad64fc201
<variant>: silence useless warning (#858) 2020-05-29 17:37:02 -07:00
Alex Guteniev c4c482105a
<execution>: comment early return control flow (#849)
Fixes #818.
2020-05-29 17:33:46 -07:00
Adam Bucior ba739dc6a2
LWG-3018 `shared_ptr` of function type (#833)
Resolves #539.

Co-authored-by: Alex Guteniev <gutenev@gmail.com>
Co-authored-by: Casey Carter <cartec69@gmail.com>
Co-authored-by: Stephan T. Lavavej <stl@nuwen.net>
2020-05-29 17:28:09 -07:00
Michael Schellenberger Costa afaac161be
Modernize and extend _Equal_memcmp_is_safe (#831)
Fixes #819.

Co-authored-by: Casey Carter <Casey@Carter.net>
Co-authored-by: Stephan T. Lavavej <stl@microsoft.com>
2020-05-29 17:21:48 -07:00
Charlie Barto fca84933a5
Add /Zc:preprocessor to our tests (#677) 2020-05-29 17:15:04 -07:00
Michael Schellenberger Costa 212de15c59
P1032R1 Miscellaneous constexpr (#491) 2020-05-23 00:03:27 -07:00
Michael Schellenberger Costa ff947563da
Enable span tests now that libc++ has been updated (#839)
Co-authored-by: Casey Carter <Casey@Carter.net>
2020-05-18 17:45:54 -07:00
Casey Carter 588dd39de4
LWG-3446 now has a number (#841) 2020-05-18 17:42:53 -07:00
Bhumij Gupta 66b0885e30
Fix P0067R5_charconv/test.cpp as C++20 adds std::chrono::last (#837) 2020-05-18 17:40:52 -07:00
Stephan T. Lavavej 4e30363272
Add charconv test cases (#835)
* Fix GH-331 "<charconv>: Test plain shortest's large integer fallback".

* Add rounding test cases.
2020-05-18 17:36:13 -07:00
Stephan T. Lavavej 809a908e50
Fix #842 "GitHub: Workflow automation is failing". (#847)
Revert "Use a GitHub Workflow to automate Code Reviews Project (#829)"

This reverts commit ed2ba34997.
2020-05-18 17:34:13 -07:00
Curtis J Bezault ed2ba34997
Use a GitHub Workflow to automate Code Reviews Project (#829) 2020-05-15 14:05:37 -07:00
Casey Carter 0e4c6412df
Allow both ::value_type and ::element_type in indirectly_readable_traits (#834)
Per [readable.traits], `indirectly_readable_traits<T>::value_type` is the same type as `remove_cv_t<T::value_type>` if it denotes an object type, or `remove_cv_t<T::element_type>` if it denotes an object type. If both `T::value_type` and `T::element_type` denote types, `indirectly_readable_traits<T>::value_type` is ill-formed. This was perhaps not the best design, given that there are iterators in the wild (Boost's unordered containers) that define both nested types. `indirectly_readable_traits` should tolerate iterators that define both nested types consistently.

Fixes VSO-1121031.
2020-05-15 09:48:14 -07:00
Stephan T. Lavavej e76f500cb3
Code cleanups (#827) 2020-05-14 15:58:54 -07:00
Alex Guteniev ad1a26ad97
<chrono>: Cache QueryPerformanceFrequency() and divide just once (#653) 2020-05-14 15:49:17 -07:00
Casey Carter 995401051f
Implement ranges::adjacent_find (#822) 2020-05-14 15:44:21 -07:00
Casey Carter 79c602144b
Implement ranges::find_first_of (#821) 2020-05-14 15:39:23 -07:00
Daniil Goncharov 48f79a3112
<utility> P0586R2 Integer Comparison Functions (#621)
Co-authored-by: Stephan T. Lavavej <stl@microsoft.com>
2020-05-14 15:20:28 -07:00
Casey Carter 46ae5f8234
Fix race in parallel adjacent_find (#816)
Check cancellation status _before_ getting a chunk of work to process, instead of after. If we check after and a result was found in a later block than the one we were assigned, we won't notice a better result in our block.
2020-05-12 14:11:32 -07:00
Casey Carter 21046cc515
Implement ranges::find_end (#815) 2020-05-12 14:10:36 -07:00
Stephan T. Lavavej 738d9bfb41
Update libcxx expected_results.txt, skipped_tests.txt. (#812) 2020-05-12 14:09:32 -07:00
Curtis J Bezault fec52cae07
Fail if the version of Python found is too old (#810) 2020-05-12 14:08:54 -07:00
Alex Guteniev 7353cd1fbc
atomic_flag_test, lock free type aliases (#684)
Addresses #52 (Partially implements P1135R6).

Co-authored-by: Casey Carter <cartec69@gmail.com>
Co-authored-by: Stephan T. Lavavej <stl@microsoft.com>
2020-05-12 14:08:04 -07:00
Alex Guteniev 9a0a17e66c
Improve call_once performance by using Init­Once­Begin­Initialize / InitOnceComplete (#688)
Co-authored-by: Stephan T. Lavavej <stl@nuwen.net>
Co-authored-by: Casey Carter <cartec69@gmail.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
Co-authored-by: Curtis Bezault <curtbezault@gmail.com>
2020-05-11 16:38:36 -07:00
Jean Philippe 11150ca667
Use _Next_iter(it) and _Prev_iter(it) instead of it + 1 and it - 1 (#803) 2020-05-07 17:09:08 -07:00
Casey Carter 07627b63ea
C++20 move_iterator changes and move_sentinel (#787)
* C++20 move_iterator changes and move_sentinel

Changes primarily come from P0896R4 "<ranges>", but the `operator<=>` from P1614R2 "Adding Spaceship <=> To The Library" is here as well.

I've also speculatively implemented the proposed resolutions of LWG-3293, LWG-3391, and LWG-3435.

I had to [patch a pair of libc++ tests](https://reviews.llvm.org/D79343) that fail with these changes; the LLVM reference is updated here to pull in those tests.

Drive-by:
* s/explicit constexpr/constexpr explicit/g (I somehow managed to sneak two occurrences into `subrange`)

* Skip flaky libc++ test (detached threads)
2020-05-07 16:02:40 -07:00
Billy O'Neal 88f8f443bb
Apply cleanups suggested when bringing this ADO VMSS support to vcpkg (#790) 2020-05-06 19:50:22 -07:00