Commit Graph

275 Commits

Author SHA1 Message Date
dmitrykobets-msft
99a29ce797
Document safe usage of undefined behavior in gsl::narrow (#1024) 2022-01-26 16:44:07 -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
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
Jean-Michaël Celerier
f09b24970d
Fix gsl/util for c++20 compilers without <span> (#993)
For instance, clang 10 sets __cplusplus >= 202002L yet does not have span, which causes build errors:

https://gcc.godbolt.org/z/Yq345zGea
2021-09-15 15:12:11 -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
beinhaerter
ef0ffefe52
is_comparable_to_nullptr for better static_assert (#975)
* is_comparable_to_nullptr for better static_assert

Trying `gsl::not_null<char> p2{ 0 };` on VS2019 the current implementation would trigger

>error C2446 : '!=' : no conversion from 'nullptr' to 'int'
>message: A native nullptr can only be converted to bool or , using reinterpret_cast, to an integral type
>message: see reference to class template instantiation 'gsl::not_null<char>' being compiled
>error C2955 : 'std::is_convertible' : use of class template requires template argument list
>message: see declaration of 'std::is_convertible'
>error C2039 : 'value' : is not a member of 'std::is_convertible<_From,_To>'
>error C2065 : 'value' : undeclared identifier


The new implementation gives much shorter and clearer message and does exactly as the `static_assert` intends to do:

> error C2338: T cannot be compared to nullptr.
> message : see reference to class template instantiation 'gsl::not_null<char *>' being compiled

* Update include/gsl/pointers

Co-authored-by: Casey Carter <cartec69@gmail.com>

Co-authored-by: Werner Henze <w.henze@avm.de>
Co-authored-by: Casey Carter <cartec69@gmail.com>
2021-02-24 14:39:13 -08:00
Jordan Maples [MSFT]
a6cef6bc6c
remove multi_span (#958) 2020-12-09 15:18:07 -08:00
Jordan Maples [MSFT]
959ce58bbc
Update gsl (#954) 2020-11-16 09:31:12 -08:00
beinhaerter
00d4a5aab6
suppress bounds.1 (#950)
Suppress "warning C26481: Don't use pointer arithmetic. Use span instead (bounds.1)."

Co-authored-by: Werner Henze <werner.henze+gitcommits@posteo.de>
2020-11-11 13:47:58 -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
Jordan Maples [MSFT]
e8978c01ab
Remove deprecation of basic_zstring et al (#945)
* Azure pipeline (#8)

* azure-pipeline test

* nl @ eof

* trimming the pipeline and adding debug steps

* removing redundant lines

* change ctest to script cmd and remove debug

* removed bad char

* added dir change for ctest

* explicit output file and cmake standard

* test cat

* more ctest tests

* injecting failure in test for validation

* another test

* removing bad test

* massive matrix

* added parallel

* commenting everything but xcode out for testing purposes

* uncomment the other tests

* testing some variables

* rename

* changed macos versions

* adding one more layer of templates

* fixing jobs.yml

* idk what i'm doing

* slight modifications

* maybe some spaces will help

* removing 'variables.'

* another test

* adding back pr w/ autocancel

* adding failing test to validate error = failing task

* remove failing test

* trigger master

* nl in steps.yml

* removing deprecation of basic_zstring and derived types. only *string_span should have been deprecated
2020-10-29 11:34:05 -07:00
Jordan Maples [MSFT]
2c3ab0211c
Fix C26481 warning in span array ctor (#944)
* Azure pipeline (#8)

* azure-pipeline test

* nl @ eof

* trimming the pipeline and adding debug steps

* removing redundant lines

* change ctest to script cmd and remove debug

* removed bad char

* added dir change for ctest

* explicit output file and cmake standard

* test cat

* more ctest tests

* injecting failure in test for validation

* another test

* removing bad test

* massive matrix

* added parallel

* commenting everything but xcode out for testing purposes

* uncomment the other tests

* testing some variables

* rename

* changed macos versions

* adding one more layer of templates

* fixing jobs.yml

* idk what i'm doing

* slight modifications

* maybe some spaces will help

* removing 'variables.'

* another test

* adding back pr w/ autocancel

* adding failing test to validate error = failing task

* remove failing test

* trigger master

* nl in steps.yml

* remove forced decay of array reference to pointer in span array ctor
2020-10-29 10:54:37 -07:00
bowie7070
b6c57e2403
Include gsl_narrow from gsl and fix comment. (#939)
narrow() is now in gsl_narrow rather than gsl_util. Include gsl_narrow when exceptions are enabled. Ensures that #include <gsl/gsl> includes entire library as advertised in the documentation.

Co-authored-by: Bowie Owens <bowie.owens@csiro.au>
2020-10-28 15:38:32 -07:00
mtnpke
736b62a838
Allow usage on platforms not providing iostreams (#935)
Closes #933.
2020-10-28 15:37:02 -07:00
tjs137
8009a703c2
use narrow_cast 2020-10-24 19:44:06 -04:00
beinhaerter
2af9b11fe9
Update include/gsl/span
Co-authored-by: Jordan Maples [MSFT] <49793787+JordanMaples@users.noreply.github.com>
2020-10-20 00:44:11 +02:00
beinhaerter
dc6fdff4c0
Update include/gsl/span
Co-authored-by: Jordan Maples [MSFT] <49793787+JordanMaples@users.noreply.github.com>
2020-10-20 00:44:02 +02:00
Werner Henze
2ccf36b4b9 eliminate warning, use narrow_cast instead of static_cast 2020-10-14 15:04:50 +02:00
Jordan Maples
3f68a0034a fixed botched formatting 2020-10-01 14:16:01 -07:00
Jordan Maples
7721de88f3 ran clang-format over string_span 2020-10-01 14:08:01 -07:00
Jordan Maples
a64c489c78 added deprecation message 2020-10-01 14:04:04 -07:00
Jordan Maples
5e773556fe initial deprecation of all types in string_span 2020-09-30 16:39:33 -07:00
Jordan Maples
e7e3bf4f5f add what to narrowing_error 2020-09-14 15:50:46 -07:00
Jordan Maples
5fb0c8611e constexpr string_span stuff 2020-08-27 13:21:35 -07:00
Jordan Maples
4a4bb3c13a adding changes suggested by Jonathan Wakely 2020-08-26 16:51:58 -07:00
Jordan Maples [MSFT]
6aa755e9ce
Merge pull request #913 from jwakely/notnull_hash
Pass correct value to std::hash
2020-08-20 15:32:22 -07:00
Pascal Menuet
c25a7544b8 Fix finally with mutable lvalue invokable 2020-08-14 16:24:10 +02:00
Jordan Maples [MSFT]
06c46195ee
Merge pull request #910 from JordanMaples/exception_fix_new_file
exception free - Version 2
2020-08-13 16:35:04 -07:00
Jonathan Wakely
e09326eefd Pass correct value to std::hash 2020-08-13 12:59:01 +01:00
Jonathan Wakely
d09f1544fd
Fix comment typos 2020-08-13 10:46:39 +01:00
Jordan Maples
74968d3ef8 Merge branch 'master' into exception_fix_new_file 2020-08-12 17:14:13 -07:00
Jordan Maples [MSFT]
0c80f51f7c
Merge pull request #908 from JordanMaples/fix_nodiscard_in_finally_macro
Finally [[nodiscard]] - Version 2
2020-08-12 15:49:55 -07:00
Jordan Maples [MSFT]
ef714fa49e
Merge pull request #676 from ericLemanissier/patch-3
fix requirement on not_null template
2020-08-12 15:28:25 -07:00
Jordan Maples
4da6a264c4 forgot newline at eof. 2020-08-12 13:22:33 -07:00
Jordan Maples
2469db7a5a add copyright header 2020-08-12 13:14:53 -07:00
Jordan Maples
afe824490e change macro test to use __cplusplus instead of __has_cpp_attribute 2020-08-12 12:13:19 -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
01eaf5bef1 macro version 2020-08-10 16:45:47 -07:00
Werner Henze
2231d733c6 zstring_span: fix for Expects, simplify functions
- `s[s.size() - 1]` is wrong for empty `s`, so `Expects(s.size() > 0)`
- no hard coded `'\0'`but `value_type{}`
- hard code `empty()` to return `false`
- simplify `as_string_span`: can never be `empty`
- clarify comment on `ensure_z`
2020-08-06 11:25:29 +02:00
Jordan Maples [MSFT]
f8d9f2e2e3
Merge pull request #906 from TManhente/intel_suppress_fix
Fix  GSL_SUPPRESS definition on Intel C++ Compiler
2020-08-05 15:35:26 -07:00
Jordan Maples [MSFT]
552eedb390
Merge pull request #881 from robert-andrzejuk/patch-1
Refactor `narrow`.
2020-08-05 15:16:25 -07:00
Thiago M. de C. Marques
ca3bf7710f Fix GSL_SUPPRESS definition on Intel C++ Compiler
Intel C++ Compiler defines the `_MSC_VER` macro, but it doesn't support `[[gsl::*]]` attributes.
2020-08-05 18:30:24 -03:00
Jordan Maples [MSFT]
559f8cfaae
Merge pull request #899 from JordanMaples/dev/jomaples/cleanup_namespaces
cleanup gsl namespace qualification for dynamic_extent.
2020-07-15 14:56:54 -07:00
Jordan Maples [MSFT]
f79ed1bb5c
Merge pull request #876 from beinhaerter/make_notnull_noexcept
noexcept for make_(strict_)not_null and not_null comparisons
2020-07-15 14:36:17 -07:00
Jordan Maples
4c66cea06c remove gsl namespace qualification within the gsl namespace 2020-07-15 13:11:57 -07:00
Jordan Maples
478d876951 remove pragma pop for constexpr macro 2020-07-15 11:43:29 -07:00
Jordan Maples
853b061141 remove msvc < 1910 checks as those versions are no longer supported. 2020-07-15 11:38:41 -07:00
Casey Carter
c143a07f61 Add string_view test case and modify deduction guides 2020-05-28 18:00:40 -07:00
Jordan Maples
689abc2982 adding container ctad 2020-05-28 14:04:31 -07:00