Commit Graph

307 Commits

Author SHA1 Message Date
dmitrykobets-msft
2bfd495080
Suppress -Wfloat-equal warning in implementation of gsl::narrow (#1043)
In the implementation of gsl::narrow, there is a comparison `static_cast<U>(t) != u` which may be comparing two floats.
The comparison here is done purposefully to categorize ill effects of narrowing conversion, since the values being compared *should* be the same when compared with `operator==`. 
Note, using #pragma GCC will suppress this warning for both GCC and Clang.
2022-04-14 11:08:28 -07:00
dmitrykobets-msft
383723676c
Make gsl::span's iterators use the contiguous_iterator concept (#1035)
Resolves #1016

Co-authored-by: Casey Carter <Casey@Carter.net>
2022-03-22 13:20:54 -07:00
dmitrykobets-msft
f22f524aa2
Suppress reserved identifier warning (#1041)
The following reserved identifiers are being used specifically to target certain MSVC constructs, so suppress the warning in VS 2022 (LLVM) "... is reserved because it starts with '_' followed by a capital letter":
- _Unchecked_type
- _Verify_range
- _Verify_offset
- _Unwrapped
- _Unwrap_when_unverified
- _Seek_to
- _Unchecked_begin
- _Unchecked_end
2022-03-22 12:24:23 -07:00
dmitrykobets-msft
c412deb31e
Update compiler support (#1019) 2021-12-10 11:17:47 -08:00
dmitrykobets-msft
bcf008ae55
Fix/implement C++2020 compilation, tests, and CI (#1017)
* Fix C++20 bugs and tests
* Rework CI for C++2020 tests
* Update readme compiler versions
2021-12-09 14:54:06 -08:00
dmitrykobets-msft
e0880931ae
Fix googletest build failure with gcc 11.1+ (#1015) 2021-11-17 12:24:40 -08:00
Werner Henze
da80ce15d8
make zstring family don't require empty angle brackets any more (#998)
Co-authored-by: Werner Henze <werner.henze+gitcommits@posteo.de>
2021-10-26 16:50:58 -07:00
Johel Ernesto Guerrero Peña
8a4b9ed0bf
feat: narrow for non totally ordered types (#986) 2021-06-23 15:28:45 -07:00
Jordan Maples [MSFT]
b26f6d5ec7
gsl::at behavior change regarding gsl::span (#985)
* move span specialization of 'at' to <gsl/span> and update the parameter to be taken by reference

* undid previous changes and acted upon decisions made in maintainer sync. Fixed tests failing in /kernel mode

* ran clang-format on the include folder

* ran clang-format on the test folder

Co-authored-by: Jordan Maples <jordan.maples@microsoft.com>
2021-05-20 18:18:08 -07:00
Tushar Maheshwari
c1cbb41b42
Fix iPhone simulator CI (#981)
* Run iOS simulator CI

* Fix link errors

- scope function linkage using anonymous namespace

* Update noexcept test for consistency
2021-05-13 10:52:09 -07:00
Nicholas Guriev
d9fa328f89
Improve build script for standalone tests (#963)
* Require Git for build tests only if installed GTest is not found

Cloning via Git is not the only path to obtain Google Test framework. In Linux,
using a system package manager is the preferred way, and gtest can be installed
through APK, APT, DNF, pacman, or many other. Now we make Git mandatory after
checking GTest existence.

See also: https://github.com/microsoft/GSL/pull/961#discussion_r548959056

* Support standalone tests

The patch makes possible to run auto-tests against globally installed GSL,
ignoring local headers. To do this, run CMake in the tests/ folder.

    cmake -B build -S tests -DGSL_CXX_STANDARD=14

This feature should not break existing build recipes.

Co-authored-by: Nicholas Guriev <nicholas@guriev.su>
2021-01-08 10:55:59 -08:00
Jordan Maples [MSFT]
e427b02c89
Reintroduce CMake changes that were reverted in #966 (#967)
* [cmake] Adding options for INSTALL and TEST (#964)

* [cmake] Adding GSL_INSTALL option

Not all consumers of GSL automatically want to have this install logic.

It's good practice to gate install logic behind an option.
For an example look at magic_enum:
https://github.com/Neargye/magic_enum/blob/master/CMakeLists.txt

If the client wants to install GSL they still can. But they should ask
for it by overriding GSL_INSTALL.

* Update cmake/guidelineSupportLibrary.cmake

added nl@eof

* Update CMakeLists.txt

* Update CMakeLists.txt

Co-authored-by: Juan Ramos <juanr0911@gmail.com>
Co-authored-by: Jordan Maples [MSFT] <49793787+JordanMaples@users.noreply.github.com>

* missing config line restored by moving GNUInstallDirs back to main file

Co-authored-by: hdf89shfdfs <31327577+hdf89shfdfs@users.noreply.github.com>
Co-authored-by: Juan Ramos <juanr0911@gmail.com>
2021-01-05 11:55:13 -08:00
Jordan Maples [MSFT]
25bb4bd948
Revert "[cmake] Adding options for INSTALL and TEST (#964)" (#966)
This reverts commit eca0eca6f1.
2021-01-04 14:17:03 -08:00
Jordan Maples [MSFT]
1c509ad8e1
update gtest (#965) 2021-01-04 11:31:01 -08:00
hdf89shfdfs
eca0eca6f1
[cmake] Adding options for INSTALL and TEST (#964)
* [cmake] Adding GSL_INSTALL option

Not all consumers of GSL automatically want to have this install logic.

It's good practice to gate install logic behind an option.
For an example look at magic_enum:
https://github.com/Neargye/magic_enum/blob/master/CMakeLists.txt

If the client wants to install GSL they still can. But they should ask
for it by overriding GSL_INSTALL.

* Update cmake/guidelineSupportLibrary.cmake

added nl@eof

* Update CMakeLists.txt

* Update CMakeLists.txt

Co-authored-by: Juan Ramos <juanr0911@gmail.com>
Co-authored-by: Jordan Maples [MSFT] <49793787+JordanMaples@users.noreply.github.com>
2021-01-04 10:42:33 -08:00
hdf89shfdfs
d15cb5fdbe
Minor cmake changes (#961)
Abstract adding natvis file.

Move call to find_package(Git) as well as making it required/quiet.
2020-12-15 10:06:46 -08:00
Jordan Maples [MSFT]
a6cef6bc6c
remove multi_span (#958) 2020-12-09 15:18:07 -08:00
Jordan Maples [MSFT]
9150ce9a95
Adding std::hash<not_null<T>> tests to notnull_tests.cpp (#947)
* added std::hash<not_null> tests

* nl
2020-11-03 16:56:09 -08:00
Jordan Maples [MSFT]
a150aaa4ed
renaming main logic files. Added warning message of the removal and include passthrough. Renamed includes in the source files. Ran Clang-Format (#946)
Header rename
2020-10-29 17:38:48 -07:00
Pascal Menuet
c25a7544b8 Fix finally with mutable lvalue invokable 2020-08-14 16:24:10 +02:00
Jordan Maples
74968d3ef8 Merge branch 'master' into exception_fix_new_file 2020-08-12 17:14:13 -07:00
Jordan Maples [MSFT]
9355982fc5
Merge pull request #868 from mymedia2/master
Search for GoogleTest via pkg-config first
2020-08-12 15:08:54 -07:00
Jordan Maples
72ddfb7a40 created new file for gsl_narrow, might want to rename if we go this approach to have all exception prone logic to live here 2020-08-11 17:11:14 -07:00
Jordan Maples
72803a7ecb adding template type to the vector to suppress clang-10 warning that vector may not intend for type deduction. 2020-05-29 15:45:25 -07:00
Jordan Maples
4d2090ebc4 fixed typo 2020-05-29 10:54:13 -07:00
Jordan Maples
c4a2ce6cc8 wrapping string_view checks in deduction guide checks to prevent 'macro unused' errors 2020-05-29 10:53:30 -07:00
Casey Carter
c143a07f61 Add string_view test case and modify deduction guides 2020-05-28 18:00:40 -07:00
Jordan Maples
6c405a1b7f adding a test to verify that the additional ctad works 2020-05-28 17:18:08 -07:00
Jordan Maples [MSFT]
0dbdf322fa
Merge pull request #886 from JordanMaples/dev/jomaples/build_matrix
compiler support revision
2020-05-26 15:14:08 -07:00
Jordan Maples
25e7af9c7d fixing clang build break 2020-05-20 17:52:03 -07:00
Jordan Maples
1e44481646 Finished integrating CaseyCarter's changes into span 2020-05-20 13:37:42 -07:00
Jordan Maples
31604f44f6 string_span_tests CLRF -> LF 2020-05-20 12:32:25 -07:00
Jordan Maples
552cd20472 addressing most of Casey's comments 2020-05-20 10:59:57 -07:00
Jordan Maples
2085c7acde initial impl of P1976R2 2020-05-19 16:27:46 -07:00
Jordan Maples
a6d382109e missed a GSL_CONSTEXPR_NARROW for removal 2020-05-12 16:43:23 -07:00
Nicholas Londey
3a5b83db35 Removed unused contant from test 2020-04-23 12:30:44 +10:00
Nicholas Londey
94d6a35726 Fixed narrow unit test EXPECT_THROW 2020-04-23 12:23:36 +10:00
Nicholas Londey
4eb554d7c2 Removed no_exception_throw_tests.cpp
as per review feedback
2020-04-23 11:58:00 +10:00
Nicholas Londey
61534ca3ad Changed implementation of gsl::narrow to throw gsl::narrowing_error
Implementation now behaves as described in the C++ Core Guidlines
2020-04-22 10:09:13 +10:00
Nicholas Guriev
f5cf01083b Search for GoogleTest via pkg-config first 2020-04-18 13:30:17 +03:00
Jordan Maples
9cb376c050 adding back free functions for [c|cr][begin|end] 2020-04-14 16:57:12 -07:00
Jordan Maples
7341c5d1b5 implement LWG3320 by deleting const_iterator and const_reverse_iterator 2020-04-14 13:51:49 -07:00
Jordan Maples
efbce17ca4 testing one of CaseyCarter's comments 2020-04-09 17:33:33 -07:00
Jordan Maples
ffbfcc0a9f apply clang-format to the span_compatibility_tests. 2020-04-09 16:15:08 -07:00
Jordan Maples
5ca02327c4 another test 2020-04-09 15:56:26 -07:00
Jordan Maples
8d907dadfb prevent comparison for apple clang versions older than 11 2020-04-09 14:35:44 -07:00
Jordan Maples
b7d9d754ac another attempt at apple clang version filtering 2020-04-09 14:17:52 -07:00
Jordan Maples
809aee2315 testing different major/minor for Apple suppression 2020-04-09 11:51:59 -07:00
Jordan Maples
6ef56d73da fixed a couple typos 2020-04-09 10:35:44 -07:00
Jordan Maples
2f9d873043 added additional filtering to Apple clang versions 9.4 and 10.1 for the ArrayConvertibilityCheck 2020-04-09 10:34:58 -07:00