ewoudvc
64c0ca64ce
make_span for array doesn't pass N as span template parameter ( #498 )
2017-04-25 12:01:49 -07:00
Tiago
ebe7ebfd85
Reformat files to follow clang-format style ( #492 )
...
Project files were not following the clang-format style. For people
using IDEs were clang-format is always run after a save this would
cause unwanted changes.
This commit only applies "clang-format -i" to files.
2017-04-20 07:51:37 -07:00
Maciej T. Nowak
c2f953f2eb
Add value_type to span ( #425 )
...
* Add value_type to span
Currently I'm working on project which involves a lot of `span`s and mocking via Google Mock. Unfortunately a lot of standard matchers requires `value_type` type definition inside container which `gsl::span` lacks.
This pull request add `value_type` type definition inside `gsl::span`
* Strip cv from value_type of span and span_iterator
2017-04-13 13:55:20 -07:00
Alexey Malov
534bb4c663
Added support of not_null<smart_ptr> comparison ( #473 )
...
* Added support of not_null<smart_ptr> comparison
* The return type of not_null comparison operators is determined using SFINAE
#474
* tests for gsl::not_null comparison were added
* not_null comparison tests were rewritten to compare pointers to objects located in the same array
* not_null<shared_ptr> comparison was simplified
2017-04-12 17:34:39 -07:00
Casey Carter
ebab8cab7f
gsl::at clean-up: ( #479 )
...
* initializer_list overload returns by value to avoid lifetime issues
* generic overload uses expression SFINAE to work with any type that has member size() and operator[], which notably includes const/non-const vector and array.
* Add test coverage for const objects, rvalue initializer_lists, and constexpr usage.
Fixes #357 .
2017-04-03 22:43:43 -07:00
Casey Carter
d65660760b
fail_fast should derive from logic_error ( #480 )
...
Fixes #298 .
2017-04-03 11:09:47 -07:00
MikeGitb
ade86caa92
Fix some corechecker warnings ( #470 )
...
* Improve const correctness in string_span
* Improve const correctness in bounds_tests.cpp and byte_tests.cpp
* Improve const correctness in span_tests.cpp
* Improve const correctness in utils_tests.cpp
* Use gsl::owner for dynamically allocated memory in string_span_tests.cpp
* Improve const correctness in string_span_tests.cpp
* Improve const correctness for strided_span_tests.cpp
2017-04-02 12:30:49 -07:00
Casey Carter
16a6a41690
gsl_assert changes: ( #452 )
...
* GSL_LIKELY/_UNLIKELY always contextually convert their argument to bool.
* Add macro GSL_ASSUME(cond) to inform the optimizer that the predicate cond must hold.
* Reimplement Expects & Ensures as expressions for flexibility and correctness. (Think about "if (cond1) Expects(cond2); else goto fail;")
* Expects and Ensures GSL_ASSUME their predicate when GSL_UNENFORCED_ON_CONTRACT_VIOLATION is defined.
2017-03-20 09:30:14 -07:00
Duncan Horn
2676e172db
Updating length_func<CharT>::operator() to accept pointer-to-const. ( #458 )
2017-03-10 09:02:13 -08:00
Rian Quinn
f9c47dd63f
add gsl::not_null operator<< ( #464 )
...
* add gsl::not_null operator<<
Hippomocks, which is a popular mocking engine for C++ uses operator<< on pointers and gets confused about gsl::not_null not having this operator.
* Update gsl
2017-03-09 12:42:18 -08:00
Casey Carter
3819df6e37
Properly qualify std::size_t ( #448 )
2017-02-13 12:11:45 -08:00
Casey Carter
e3fecbd1c5
not_null cleanups and improvements: ( #449 )
...
* constexpr all the things.
* remove operator=(const T&)
* it leaves *this in an invalid state if ensure_invariant fails
* implicitly converting the T to not_null and then assigning is in every way superior.
* simplify conversion from not_null<U> with constructor delegation.
* remove the converting assignment operator; again let the conversion constructor and self-assignment operator do the work.
* Cover the remaining pointer arithmetic operations as Wakely suggests in issue #447 .
* Cleanup not_null conversions from null pointer constants:
* replace constructor that accepts T with constructor template that accepts U convertible to T
* remove deleted constructor that accepts int
* Attempts to initialize with nullptr, 0, 0L, 0LL, etc. all unambiguously select the deleted nullptr_t constructor.
2017-02-13 11:40:27 -08:00
Casey Carter
6360dd1e75
Revert change to the definition of constexpr macro in gsl_byte from #446 ( #450 )
2017-02-11 17:38:59 -08:00
Casey Carter
4e8f95b418
Cleanup include structure, constexpr and noexcept compiler workarounds.
...
* Nest "gsl" directory inside a new "include" directory.
* Cleanup the _MSC_VER conditionals a bit; use constexpr on VS2017+.
* Don't #define noexcept on non-Microsoft implementations.
* Workaround VS2017 bug in multi_span. (Also implement == and != for static_bounds_dynamic_range_t because I'm an EoP semantic soundness snob.)
Fixes #441 .
2017-02-07 15:59:37 -08:00
galik
f6cc5798a1
Renamed include/ folder to gsl/ to make including the library consistent
...
whether using it from the development folder, from the installation
folder or from being copied into a project.
#include <gsl/gsl.h>
Updated headers/tests/instructions/cmake build accordingly
This PR should address https://github.com/Microsoft/GSL/issues/277 (less
the renaming of gsl itself)
2016-08-09 15:04:58 +01:00
Neil MacIntosh
efeb557bf1
Merge pull request #310 from neilmacintosh/dev/neilmac/fix_mismatched_pragma
...
Fixed #308 - a mismatched pragma.
2016-08-08 13:52:15 -07:00
Som1Lse
c4817358aa
Implemented https://github.com/Microsoft/GSL/issues/260
2016-08-03 22:28:25 +02:00
Neil MacIntosh
db9d3da029
Merge branch 'master' of https://github.com/neilmacintosh/GSL into dev/neilmac/fix_mismatched_pragma
2016-08-02 18:10:07 -07:00
Neil MacIntosh
ebce4920d6
Fixed #308 - a mismatched pragma.
2016-08-02 16:22:18 -07:00
Neil MacIntosh
6c7be2c8ee
clang-format run.
2016-08-01 21:41:20 -07:00
Neil MacIntosh
94afa1fbd7
Removed unnecessary inheritance between iterators.
2016-08-01 18:49:48 -07:00
Neil MacIntosh
1bd2d04c2e
Another round of clang-formatting.
2016-08-01 13:10:02 -07:00
Neil MacIntosh
8e31f53f8a
Building clean with MSVC12.
2016-07-29 11:16:06 -07:00
Neil MacIntosh
a0cf1ecc49
Renamed as_span() to as_multi_span() for clarity.
2016-07-28 17:27:22 -07:00
Neil MacIntosh
a88cfb168a
Fixed type-name mixup in string_span.
2016-07-27 13:48:29 -07:00
Neil MacIntosh
6fadce975b
Applied clang-format.
2016-07-26 19:19:47 -07:00
Neil MacIntosh
4de3d4e3e3
Fixes for Clang 3.6 compilation.
2016-07-26 18:44:13 -07:00
Neil MacIntosh
c366f4415d
Fixed compilation issues for GCC on Linux.
2016-07-26 18:34:27 -07:00
Neil MacIntosh
b03b04bfcd
Applied clang-format to the source.
2016-07-20 13:17:47 -07:00
Neil MacIntosh
cd80ef6146
Merge branch 'master' into dev/neilmac/spec
2016-07-20 12:02:51 -07:00
Neil MacIntosh
eed99d8599
Merge branch 'master' into dev/neilmac/spec
2016-07-20 09:30:05 -07:00
Neil MacIntosh
f2ab3a5c54
Tidying up noexcepts.
2016-07-20 09:24:49 -07:00
Neil MacIntosh
5e7771f879
Slight tidy-up to precondition checking in span.
2016-07-20 09:00:10 -07:00
Neil MacIntosh
0c1b6717c1
Weakened cast in span::iterator.
2016-07-20 08:52:09 -07:00
Neil MacIntosh
520c72d777
Tidied up assertion.
2016-07-18 12:00:33 -07:00
Neil MacIntosh
30a038ca6a
Added tests for span iterators, fixed implementation.
2016-07-18 11:38:01 -07:00
Neil MacIntosh
8855c59579
Added basic compile support for MSVC 2013 to byte.
2016-07-15 17:31:40 -07:00
Neil MacIntosh
267472449c
Renamed byte header and tidied up string_span dependencies.
2016-06-26 17:00:56 +03:00
Neil MacIntosh
b72d7abfb0
Added definition of gsl::byte to match proposed std::byte.
2016-06-24 04:54:09 -07:00
Neil MacIntosh
7b00172f00
Final sync with D0122R3 version of specification.
2016-06-20 01:41:49 -07:00
Neil MacIntosh
64598bc0f7
Cleaned up last() functions to match spec.
2016-06-14 20:20:09 -07:00
Neil MacIntosh
62f30205e5
Additional std::array ctor to support const element cases.
2016-06-14 20:14:17 -07:00
Neil MacIntosh
c94a66f468
Tightened SFINAE for span<U> to span<T> conversions.
2016-06-12 18:28:19 -07:00
Neil MacIntosh
ba8ebef509
Added span to object rep conversions.
2016-05-29 17:06:29 -07:00
Neil MacIntosh
d63c9803da
Added comparison operators.
2016-05-29 14:05:09 -07:00
Neil MacIntosh
25ff7eca1f
Removed some redundant parens.
2016-05-29 13:54:19 -07:00
Neil MacIntosh
d9d6ff0121
Added iterators.
2016-05-29 13:52:28 -07:00
ericLemanissier
9d8866a732
gsl::at overload for initializer_list
...
initializer_list do not have subscript operator, so the generic container overload of gsl::at fails to compile.
This commits adds an overload of gsl::at for initializer_lists, using *(initializer_list::begin()+index) instead of subscript operator
2016-05-09 15:27:17 +02:00
Neil MacIntosh
a9f0ce2f77
Suppressed CppCoreCheck warnings.
2016-03-31 12:01:07 -07:00
Neil MacIntosh
c8a412f028
Implemented first, last, subspan.
2016-03-18 16:49:29 -07:00
Neil MacIntosh
3d4c34966a
Fixed ctors for Container and std::array to accept temporaries.
2016-03-17 17:20:33 -07:00
Neil MacIntosh
717a2e35f1
Added conversion ctors.
2016-03-16 19:39:55 -07:00
Neil MacIntosh
c40094a532
Added from-container constructors.
2016-03-01 12:11:41 -08:00
Neil MacIntosh
f61a9bba48
Added array constructors.
2016-02-29 13:16:48 -08:00
Neil MacIntosh
502cd6650a
Checking in to continue working elsewhere.
2016-02-28 00:50:53 -08:00
Neil MacIntosh
cc22f2bf42
first/last constructor working.
2016-02-25 11:42:26 -08:00
galik
f02dcc1cc9
Merge remote-tracking branch 'upstream/master'
2016-02-25 19:25:45 +00:00
Neil MacIntosh
d3929c59a0
Began reimplementation of span. Basic constructors.
2016-02-24 16:11:33 -08:00
Neil MacIntosh
cec26a23b9
Added new span-related files.
2016-02-24 11:26:28 -08:00
Neil MacIntosh
d2f12a8fa3
File renames to reflect new multi_span name.
2016-02-24 11:03:33 -08:00
Neil MacIntosh
49e80625c6
Renamed existing span to multi_span.
2016-02-24 10:29:29 -08:00
Paweł Bylica
c2924406e2
Disable MSVC warning 4127 (conditional expression is constant) raised for so instances of narrow().
2016-02-19 19:14:39 +01:00
Paweł Bylica
abae0bd998
Refactor is_same_signedness.
2016-02-19 19:03:51 +01:00
Paweł Bylica
092a8e53e4
narrow: Check for changed sign only if types have different signess.
2016-02-16 14:37:07 +01:00
galik
1843b1739e
Fix: Issue: #267 gsl::fail_fast only defined for one configuration
2016-02-16 00:57:04 +00:00
Paweł Bylica
6a4f2512b7
narrow: Also check if a value has changed sign after cast.
...
Fixes https://github.com/Microsoft/GSL/issues/222 .
2016-02-08 12:38:06 +01:00
Anna Gringauze
45f2bdb486
Fixed compilation issues with gcc and clang
2016-02-06 21:37:17 +00:00
Anna Gringauze
ed906e7aae
Addressed CR comments
2016-02-06 10:46:40 -08:00
Anna Gringauze
b4ff206c24
Added zstring_span and removed zstring_builder to support legacy strings
2016-02-03 19:30:34 -08:00
Gary Furnish
62b063a272
Fix issue #242
2016-01-13 16:12:17 +00:00
Neil MacIntosh
fc5fce4f4f
Correct define to undef in string_span.h.
2016-01-05 22:04:00 -08:00
Neil MacIntosh
d38e621201
Correct missing return in string_span.h
...
Should fix #239 .
2016-01-04 11:57:03 -08:00
Tristan Brindle
3bc3f35214
Fix missing #include <string> in string_span.h
2015-12-23 01:26:38 +13:00
Anna Gringauze
eb05256ffe
Fixed compilation issues in MSVC 2013
2015-12-14 20:43:58 -08:00
Neil MacIntosh
9e1402dff8
Merge fixes from menuet, dropping max() macro workaround.
...
Conflicts:
include/string_span.h
2015-12-14 11:38:20 -08:00
Neil MacIntosh
385780388e
Merge branch 'VS2013-fix-string_span-ctors' of https://github.com/menuet/GSL into menuet-VS2013-fix-string_span-ctors
2015-12-14 11:08:58 -08:00
Pascal Menuet
f38ee4fb5e
In VS2013, the std::equal does not have the overload that takes 4 iterators
2015-12-12 22:59:57 +01:00
Pascal Menuet
5e7e68c8b0
For VS2013, fix an ICE by replacing dummy template type parameter by a dummy function parameter
2015-12-12 22:51:49 +01:00
Pascal Menuet
37cdb6bc50
Disable macro max in Windows. Implement move ctors in string_span for VS2013. Remove redundant pragma warning pop for VS2013.
2015-12-11 20:47:07 +01:00
Zachary Henkel
293acf0640
Add casts to eliminate signed/unsigned mismatch warnings
...
Addresses issue #210 and VC's warning C4365
2015-12-09 13:59:32 -08:00
Neil MacIntosh
eb28b21049
Merge pull request #221 from mcheese/master
...
Correct missing rename of bytes() to size_bytes()
2015-12-08 12:02:14 -08:00
Anna Gringauze
5926942cd7
Tyding up comments
2015-12-07 15:30:00 -08:00
Anna Gringauze
e19f6b5f36
Fixed a bug on creating a span from empty string
2015-12-07 15:22:11 -08:00
Anna Gringauze
c6f3579ad1
Changes for gcc and clang
2015-12-07 00:14:31 -08:00
Anna Gringauze
87c5daa6c4
Fixed operators and constructors for string_span
2015-12-07 00:14:25 -08:00
mcheese
eedd18d5b8
Correct missing rename of bytes() to size_bytes()
2015-12-06 13:43:03 +01:00
Anna Gringauze
de6dbacbf6
Addressed CR comments
2015-12-01 14:47:53 -08:00
Anna Gringauze
7077105b9d
Added operator==
2015-12-01 13:41:28 -08:00
Anna Gringauze
8c5d06dc79
fixed GCC and clang compilation issues
2015-12-01 13:41:23 -08:00
Anna Gringauze
e3878a6556
merging with master
2015-12-01 13:41:18 -08:00
Neil MacIntosh
f76f739805
Addressing #178 : wrong return type for function.
2015-11-30 18:20:14 -08:00
Neil MacIntosh
c9959b1071
Corrected some variable naming.
2015-11-30 05:34:38 +00:00
Neil MacIntosh
0cf947db77
Reworked span to match GSL design.
2015-11-29 19:19:37 -08:00
Neil MacIntosh
38eaf9fc95
Refactored headers so span can use narrow_cast etc.
2015-11-23 16:22:31 -08:00
Neil MacIntosh
d5057370b8
Merge branch 'master' into dev/neilmac/contracts
2015-11-20 17:14:21 -08:00
Neil MacIntosh
d13f6daa75
Refactored to use Expects/Ensures everywhere.
2015-11-20 17:06:23 -08:00
Elron A. Yellin
e4d8d35af5
add as_span overload for basic_string which doesn't have nonconst .data() like other contiguous containers
2015-11-20 17:50:02 -05:00
Anna Gringauze
c95eb57d3f
Fixed conversion problem when creating strided_span from span and bounds
2015-11-19 13:13:15 -08:00
Matus Chochlik
73ec688674
Made conversion of span<> to bool explicit
2015-11-19 10:27:08 +01:00
Matus Chochlik
da75d0e757
Added explicit cast to size_type in span constructor
...
This silences implicit sign conversion warnings when constructing span
from containers which return size_t from size().
2015-11-18 17:45:36 +01:00
Neil MacIntosh
106262f1ef
Remove unnecessary workaround for max macro
2015-11-17 19:01:46 -08:00
Neil MacIntosh
107869a2e4
Merge branch 'master' of https://github.com/Microsoft/GSL into dev/neilmac/defines
2015-11-17 15:35:14 -08:00
Neil MacIntosh
292f81e5ef
Tidied up compiler-config macros.
2015-11-17 15:07:51 -08:00
Lukas Haselsteiner
e51eb228ae
fixes pragma undef warnings in MSVC2013
2015-11-15 23:08:35 +01:00
Anna Gringauze
f510025109
Removed basic_span class
2015-11-13 12:54:37 -08:00
Anna Gringauze
8aa4248722
Removing basic_span base class from span
2015-11-13 12:52:02 -08:00
Neil MacIntosh
a998a9b33b
Turned on Level 3 warnings for MSVC.
2015-11-12 18:57:23 -08:00
Neil MacIntosh
42a7030052
Merge pull request #180 from OlafvdSpek/patch-1
...
Sort includes
2015-11-12 15:42:50 -08:00
Olaf van der Spek
550361cf46
Sort includes
2015-11-12 10:23:56 +01:00
Vladislav Yaroslavlev
a29ed61a48
Merge remote-tracking branch 'refs/remotes/Microsoft/master'
2015-11-12 10:47:49 +03:00
Vladislav Yaroslavlev
995cfdf1cb
Add copy assignment operator to BoundsRanges
...
`BoundsRanges` defines copy constructor, but lacks `=` operator
2015-11-12 10:46:21 +03:00
Vladislav Yaroslavlev
557e6693b5
Add copy assignment operator to strided_bounds
...
`strided_bounds` defines copy constructor, but lacks copy assignment
operator
2015-11-12 10:44:41 +03:00
Neil MacIntosh
fc289930ee
Cast size_type for string_span ctor from container.
2015-11-11 20:48:42 -08:00
Rostislav Khlebnikov
31dd90ef31
added missing inlines
2015-11-05 17:56:50 +00:00
Neil MacIntosh
4e4882bda8
Added workaround for MSVC 2013 compiler bug.
2015-11-05 09:29:30 -08:00
Neil MacIntosh
b63ec949e9
Renaming array_view and string_view, as per WG21 discussions.
2015-11-04 12:42:27 -08:00
Neil MacIntosh
68064d63fe
Converted all tabs to spaces in array_view.h.
2015-11-03 19:17:11 -08:00
Neil MacIntosh
e9a9602b4f
Fixed compile issues for MSVC 2013.
2015-11-03 18:56:55 -08:00
Neil MacIntosh
41517ff316
Cleaned up size_t use for ranks. Compilation fixes for non-MSVC compilers.
2015-11-04 02:11:49 +00:00
Neil MacIntosh
14d50a6f77
Minor compilation fixes and workarounds.
2015-11-03 12:44:09 -08:00
Neil MacIntosh
16d1e77568
Merge remote-tracking branch 'origin' into dev/neilmac/indextype
2015-11-02 19:01:59 -08:00
Neil MacIntosh
ba3126105b
Merge pull request #163 from archshift/patch-1
...
array_view: explicitly initialize constexpr function variables
2015-11-02 11:53:08 -08:00
archshift
b39571781e
array_view: explicitly initialize constexpr function variables
2015-11-02 11:47:14 -08:00
Neil MacIntosh
a4fa2b3bd9
Merge branch 'master' of https://github.com/Microsoft/GSL
...
Conflicts:
include/array_view.h
tests/array_view_tests.cpp
2015-10-28 16:53:53 -07:00
Matt Newport
0cbdc7036d
Fixed string_view::ensure_z() for const char*.
2015-10-26 18:23:14 -07:00
Neil MacIntosh
ace9ab9d3b
Building again. Some tests failing.
2015-10-23 19:49:17 -07:00
Kosov Eugene
561da1cd00
fix clang warning on unused function parameter
2015-10-21 13:31:00 +03:00
Anna Gringauze
1c208b33d0
Removed specializations for Rank=1
2015-10-19 14:19:46 -07:00
Neil MacIntosh
1e36db9695
Merge pull request #147 from samuel3/master
...
std::hash support for gsl::not_null.
2015-10-19 13:20:53 -07:00
Anna Gringauze
5f26ddac70
Replaced index constructor from initializer list by a constructor from static list
...
Conflicts:
include/array_view.h
2015-10-19 12:35:38 -07:00
Samuel García Salas
8e2acc9c90
std::hash support for gsl::not_null.
2015-10-17 09:28:05 +02:00
Samuel García Salas
a544ada8fe
std::hash support for gsl::not_null.
2015-10-17 08:53:58 +02:00
Anna Gringauze
a4654a46b5
Removed arrow_proxy class, fixes bugs in reverse bounds_iterator
2015-10-16 17:15:56 -07:00
Neil MacIntosh
01868f2516
Fix missing header for std::divides.
2015-10-15 16:48:38 -07:00
Neil MacIntosh
d0f09e768e
Merge branch 'master' of https://github.com/Microsoft/GSL
...
Conflicts:
include/array_view.h
2015-10-15 16:38:53 -07:00
Neil MacIntosh
f45fedbec2
Partway through removing configurable SizeType.
2015-10-15 14:29:35 -07:00
Anna Gringauze
2cdedda7e4
Adding missing include library to array_view.h
2015-10-15 13:19:24 -07:00
Anna Gringauze
fdf8643471
Fixes for gcc
2015-10-14 21:27:41 -07:00
Anna Gringauze
546f8cc130
Added tests for index size_type conversions
2015-10-12 18:35:21 -07:00
Anna Gringauze
db38497d05
Removed coordinate_facade class
2015-10-12 16:52:11 -07:00
Treb Connell
fda8e12310
Fix #124 remove maybe_null
2015-10-05 13:34:50 -07:00
Treb Connell
b8ec73a179
Fix moving a final_act twice
2015-10-02 15:58:23 -07:00
Neil MacIntosh
df88352c1d
Merge pull request #57 from kernhanda/kernhanda/use_algorithms
...
We should be using standard algorithms where possible.
2015-10-02 09:12:26 -07:00
Neil MacIntosh
d531680a31
Improved macros used for non-compliant compilers.
2015-09-30 21:54:08 -07:00
Neil MacIntosh
831c6926df
Adding noexcept to finally, final_act, narrow_cast. Fixes #92 .
2015-09-30 15:10:24 -07:00
Neil MacIntosh
d06f7ff779
Renamed Final_act to final_act as per issue #91 .
2015-09-30 12:39:18 -07:00
RicoAntonioFelix
e8ff01e543
Commit to address issue #103...
2015-09-30 12:50:42 -04:00
Neil MacIntosh
761554f68d
Correct misleading text in static_assert. Fixes issue #67 .
2015-09-29 16:54:00 -07:00
Neil MacIntosh
ef626fd33a
Renamed namespace to 'gsl'. Renamed macro to configure testing.
2015-09-29 16:41:37 -07:00
john-lynch
1d11cd1ed1
Fixing typo in move constructor implementation that resulted in compile error during tests.
2015-09-29 00:00:21 -05:00