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

266 Коммитов

Автор SHA1 Сообщение Дата
SumanjaliDamarla d0d724fb91 Update _MSVC_STL_UPDATE to 201911L (#253)
Fixes #247.
2019-11-04 11:36:54 -08:00
Michael Schellenberger Costa 3b0a1c9cfa Consistently use "int = 0" SFINAE (#226)
Fixes #187.

Add TRANSITION comments for #248 and #249, blocked by compiler bugs.

Add `_Enabled` names. When we don't have `enable_if_t`, this makes the
template parameter's purpose clearer. When we do have `enable_if_t`
but without `= 0`, this makes it somewhat clearer that we haven't
forgotten the default argument (it's simply elsewhere).
2019-11-01 18:15:37 -07:00
Daniel Marshall 28ec9a3295 P1209R0 erase_if(), erase() (#236)
Resolves #55.

* Deprecate experimental::erase

* Implement P1209R0

* Update yvals_core.h

* Update deprecations and remove <experimental/xutility>

* move and reorder erase/erase_if

* moved _Erase and remove and friends to <xmemory>

* Consistently place erase_if() definitions.
2019-11-01 14:32:39 -07:00
Billy O'Neal 389066634b
Remove delay comment in PR template because we've been merging PRs (#243)
* Remove delay comment in PR template because we've been merging PRs.

* Add readme.md note, and change "CI" to "automated testing" in checklist.

* Also remove statement from readme.md.
2019-10-31 18:39:31 -07:00
Casey Carter 1d094330aa
<compare> implement == for comparison categories (#242)
WG21-P1614 "The Mothership has Landed" added `==` operators to the comparison category types (`weak_equality`, `strong_equality`, `partial_ordering`, `weak_ordering`, and `strong_ordering`) defined in `<compare>`. This PR implements those operators to bring the comparison category types up to spec once again. It also implements P1614R2's removal of operators that rewrite into calls to `operator==(X, nullptr_t)` for each comparison category type `X`.

Drive-by changes:
* Move the TODO list of tasks for WG21-P0768 "Library Support for the Spaceship (Comparison) Operator" completion out of `<compare>` and into microsoft/STL#64
* Remove the `#if 0 // Not yet implemented` block from `<compare>`
2019-10-31 17:37:56 -07:00
Stephan T. Lavavej d736fe46b9
Update cgmanifest.json and README.md. (#238)
* Replay MSVC internal PR 209928.

* README.md: Capitalize Preview.
2019-10-30 19:06:27 -07:00
Stephan T. Lavavej 9c1c63cd26
Enforce ASCII and whitespace conventions (#229)
Fixes #141.

* Change LF to CRLF.
* Remove UTF-8 BOMs.
* Add validate.cpp.
* Add validate to CMakeLists.txt.
* Add validate to azure-devops.
* Wrap enforce-clang-format.cmd.
* Code review feedback: abort().
* Code review feedback: Assign previous3.
* Code review feedback: Don't catch everything.
* Code review feedback: MaxErrorsForDisallowedCharacters.
* Cleanup: Remove `enabled: true`.
* Code review feedback: Character code comments.
* Code review feedback: Allow certain files to be tabby.
* Code review feedback: Use native wchar_t paths.
2019-10-30 16:22:33 -07:00
Casey Carter b9eb320940
Update required compiler versions (#231)
* Update required compiler versions

Update required version of MSVC to VS 2019 16.4p2, and Clang/LLVM to 9.0.0.

* Tell `<yvals_core.h>` that Clang 9 implements `consteval` (WG21 hasn't yet defined a feature-test macro for `consteval`)
* Tell `<atomic>` that Clang 9 implements the `__iso_volatile_load64` intrinsic on x86

* Update mentions of VS version in `README.md`
2019-10-29 20:40:09 -07:00
Billy O'Neal f4f3acde83
Avoid self-move-assign of all elements in vector when erasing an empty range. (#228)
Resolves DevCom-776568.
2019-10-28 19:41:58 -07:00
Billy O'Neal 5bf80b41d1
Use casts for most common atomic cases (#227)
Resolves #85 / DevCom-706195

Casey applying the new atomic implementation fixed us breaking the
strict aliasing rules, but the memcpy is causing a code size regression
for non-`/Oi` customers. This change should restore code size for the
most common uses of atomic, which are `atomic<integral>` and
`atomic<pointer>`.
2019-10-28 15:49:58 -07:00
Julie Philip James 04cf94886a Changed TODO comments to TRANSITION comments (#221)
Fixes #200.
2019-10-27 14:12:14 -07:00
Christian Deneke 99b75ab51d Move nlsdownlevel.h into winapinls.cpp (#220)
Fixes #188.
2019-10-27 14:04:30 -07:00
Nathan Ward fb7dba4b19 P0655R1 visit<R>() (#201)
Implements P0655R1 `visit<R>()` 

Resolves #31.
2019-10-25 18:48:15 -07:00
Krystyna Lopez a69a00e33b Fix #218 - remove public redundancy (#219) 2019-10-25 11:26:59 -07:00
Billy O'Neal 6b0238d703
Changes made from update to clang-format to 9.0.0. (#205) 2019-10-24 16:47:28 -07:00
Nathan Ward 447f879b13 LWG-2899 is_(nothrow_)move_constructible and tuple, optional, and unique_ptr (#193)
Resolves #68.
2019-10-22 17:50:05 -07:00
Nathan Ward a7d9526804 LWG-3158 tuple(allocator_arg_t, const Alloc&) should be conditionally explicit (#195)
Resolves #69.
2019-10-22 17:25:38 -07:00
Stanislav Ershov f05c358509 P0767R1 Deprecating is_pod (#179)
Resolves #36.
2019-10-22 17:17:11 -07:00
Nathan Ward 379e61781a P0356R5 bind_front() (#158)
Resolves #13.
2019-10-22 17:15:35 -07:00
Stephan T. Lavavej 1e4f423120
Update README and PR template (#194)
* README.md: New Working Draft N4835.

* Simplify pull_request_template.md.

We can remove the N/A guidance by updating
the two checkboxes that are commonly N/A.

Remove the "feature has been voted into the WP" checkbox.
We haven't had issues with people submitting non-Standard PRs,
and the README's Non-Goals section clearly explains
our acceptance criteria.

For the `_Ugly` checkbox, allow people to check it
if there aren't any product code changes at all.
2019-10-21 13:12:13 -07:00
Nathan Ward 957fe99f41 P0966R1 string::reserve() should not shrink (#176)
Fixes #42.
2019-10-17 16:06:27 -07:00
Stephan T. Lavavej 53cdb9f8a8
Fix #94 and remove compiler bug workarounds. (#175)
* Properly comment "Tukey's ninther".

* Remove workarounds for VSO-946746.

VSO-946746 "conditional explicit(bool) doesn't work with /clr:pure"
was fixed on 2019-07-23, and should be available in
VS 2019 16.4 Preview 1.

* Remove workarounds for VSO-433486.

VSO-433486 "_Count / 2 inside while (0 < _Count) loop is not
transformed into a simple shift" was fixed on 2019-08-27
and should be available in VS 2019 16.4 Preview 2.

Some shifts are still necessary, and are now commented.

* This mirrors a Microsoft-internal PR:
https://devdiv.visualstudio.com/DevDiv/_git/msvc/pullrequest/207988
2019-10-15 16:49:36 -07:00
Casey Carter 6aa3b02fde
Cleanup <any> and allow overaligned types (#173)
`<any>` cleanup:

* Prefer variable templates to class templates
* Prefer `if constexpr` to tag dispatch
* Function pointers may be `noexcept` in C++17
* Remove the layer of "symbolic member name" functions to improve debug codegen
* Conventionally use `enable_if_t<conjunction_v<meow, woof>` instead of `enable_if_t<meow::value && woof::value>`
* Apply `_NODISCARD` and `noexcept` to internal functions as appropriate
* Allow overaligned types, which are properly handled by the `_Big` representation

Resolves [DevCom-724444](https://developercommunity.visualstudio.com/content/problem/724444/meow.html).
2019-10-15 13:16:34 -07:00
Billy O'Neal 0d95d86ee7
Add back the missing unique_ptr swap (#170)
Resolves DevCom-754487 / VSO-1000729
2019-10-11 14:39:53 -07:00
Stephan T. Lavavej 712b7971bd
Update comments to follow custom autolink syntax (#168)
* Use custom autolinks.

* Also update .clang-format.

* Use ArchivedOS.
2019-10-11 13:43:06 -07:00
Casey Carter f565496875
Workaround clang __is_base_of bug in <type_traits> (#167)
Clang's `__is_base_of` intrinsic incorrectly handles some corner cases involving incomplete union types before LLVM 9. Workaround by guarding with `__is_class`.
2019-10-09 18:21:10 -07:00
Billy O'Neal 9b2207c14e
Parallelize enforcement of clang-format (#163)
Add jobify.exe and parallelize.exe
Add a "tools" directory for test/build support tools.
Add jobify.exe from the msvc repo.
Extract parts of jobify into stljobs.h, and author wrappers for other test support.
Add parallelize.exe which runs a command in parallel over all inputs in a directory.
Teach Azure DevOps to enforce clang-format in parallel.
2019-10-08 17:12:08 -07:00
Bhumij Gupta cd8fee0320 * Replaced Microsoft/STL with microsoft/STL (#157)
* Capitalised first letter of every word in header
2019-10-03 19:17:37 -07:00
Stephan T. Lavavej b72c0a609f
Activate FrameHandler4 to fix #118. (#154)
This affects the x64 build. Before this change, msvcp140.dll
was 601,600 bytes. After this change, it's 540,672 bytes.

This ports a Microsoft-internal PR:
https://devdiv.visualstudio.com/DevDiv/_git/msvc/pullrequest/204636
2019-10-02 15:17:25 -07:00
Stephan T. Lavavej 50f343b458
Implement LWG 3268's PR to fix #150. (#151)
This is a back-compat fix for users who were saying things like
`std::memory_order::memory_order_relaxed`. As there is nothing
especially problematic about such usage, and LWG's ultimate resolution
is unknown, I'm not deprecating these enumerators at this time. If and
when this is voted into the WP in the deprecated clause, then we can
add deprecated attributes.

This mirrors a Microsoft-internal PR:
https://devdiv.visualstudio.com/DevDiv/_git/msvc/pullrequest/205250
2019-10-01 16:04:24 -07:00
rithikmali 4b84225ae0 Corrected URI to URL (#149)
On line 157,corrected URI to URL
2019-10-01 15:44:42 -07:00
Stephan T. Lavavej a1273b8907
Update the PR template to fix #117. (#152)
Update the PR template to fix #117.

This adds a checkbox to the PR template mentioning
license discipline.

It clarifies the instructions regarding unchecked
and inapplicable boxes.

It fuses the "acceptance will be delayed" disclaimer
into the README checkbox.

This also rewraps the issue template (we usually wrap to 120,
but 80 is friendlier to the issue textbox) and improves the
wording by changing "Alternately" to "Alternatively".
2019-10-01 13:20:08 -07:00
Michael Schellenberger Costa cf55d69c40 P1227R2 Signed std::ssize() (#130)
Fixes #56.
2019-09-26 20:10:40 -07:00
Michael Schellenberger Costa 13fa3d8b0e P1357R1 is_bounded_array, is_unbounded_array (#127)
Fixes #58.
2019-09-26 19:54:23 -07:00
Andrew Fogarty 3ed27b95ce P0439R0 enum class memory_order (#124)
Fixes #17.
2019-09-26 19:51:00 -07:00
Casey Carter 1dcac20d28
Refuse to allow clang to include coroutine headers (#136)
Resolves #105.
2019-09-26 10:45:58 -07:00
Charlie Barto 0281a45229
Move cgmanifest.json (#138)
Fixes #125
2019-09-25 19:32:02 -07:00
Charlie Barto ff7d132b2e
implement P0325R4 to_array (#135) 2019-09-25 19:30:31 -07:00
lukka d7c7691f3a Build in Azure Pipelines with cached vcpkg artifacts (#114) 2019-09-25 19:13:53 -07:00
Billy O'Neal d5c2a9aaaa
Add azure pipelines status badge to readme.md. (#134) 2019-09-24 20:02:28 -07:00
Billy O'Neal a8e13582e9
Set up CI with Azure Pipelines that checks that sources are clang-format'd (#132)
This script runs clang-format on the sources, then runs git status --porcelain on the result, redirected to stderr. If any output goes to stderr, Azure Pipelines marks the build as failed, which enforces that no changes were made to the repo by the clang-format pass.

Resolves #88
2019-09-24 19:19:50 -07:00
Casey Carter 62482a6ddd
Fix regex tokenizing bug (#131)
We skip a non-match character in `regex_iterator::operator++` after a zero-length match to avoid repeat matches, resulting in incorrect behavior when tokenizing with a regex to match the delimiters between tokens.

Fixes [DevCom#733051](https://developercommunity.visualstudio.com/content/problem/733051/splitting-a-string-with-a-regex-returns-seemingly.html).
2019-09-24 15:14:39 -07:00
Billy O'Neal 44720cd5f6
Do size modifications after iterator transfer strategy selection (#129)
This was the cause of the DevCom reported bug:

https://developercommunity.visualstudio.com/content/problem/739698/vc-163-listsplice-bug.html

where we would choose the incorrect strategy to transfer iterators if and only if the number of transferred iterators was exactly half of the container.

This change replicates internal [PR 203902](https://devdiv.visualstudio.com/DevDiv/_git/msvc/pullrequest/203902)
2019-09-24 03:23:13 -07:00
Casey Carter aacdfb522b microsoft/vclibs is the code owner (#123)
....not any particular set of members thereof.
2019-09-23 10:19:12 -07:00
Casey Carter da76ab2d5f
basic_string_view's non-member begin/end should take basic_string_view by value (#119)
... as the working draft requires. Test coverage failed to detect this issue due to [an overload resolution bug in MSVC](https://developercommunity.visualstudio.com/content/problem/739010/overload-resolution-fails-to-select-deleted-overlo.html).

Drive-by: Remove the "accepts rvalues" bit from the comment in `begin` which caused the confusion that gave rise to #104. Hopefully it is now glaringly obvious that `begin` and `end` accept both lvalues and rvalues.

Resolves #104.
2019-09-20 12:39:25 -07:00
practicalswift 7f65140761 Fix typos (#96)
* Fix typos

* Run clang-format on touched files

* Revert clang-format damage
2019-09-17 21:45:12 -06:00
Billy O'Neal ee1ede2c62
Remove VCPKG_TARGET_TRIPLET enforcement. (#101)
Resolves #97.

We used to detect target platform by inspection of VCPKG_TARGET_TRIPLET, but that is no longer necessary. As a result, this enforcement can be removed.
2019-09-17 12:32:55 -06:00
Stephan T. Lavavej 5c725eb3d8
Update pull_request_template.md (#103)
Mention clang-format's version to avoid formatting churn.
2019-09-17 11:06:20 -06:00
Billy O'Neal e94b4e758a Create a CODEOWNERS (#102)
This lets us require an STL maintainer to sign off before merging.

See the documentation for CODEOWNERS at
https://help.github.com/en/articles/about-code-owners
2019-09-17 09:07:26 -07:00
Michał Cichoń c838a6f937 Reflect directory structure of includes in ${PROJECT_BINARY_DIR}/out/inc (#98)
Configured headers were flattened during configuration. This patch
keep original directory structure.

For example without this for 'deque` is replaced by `experimental/deque`.
2019-09-17 08:01:08 -07:00