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.
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
* 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>
* 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>
* [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>
* [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>