Commit Graph

274 Commits

Author SHA1 Message Date
Rian Quinn
d641796b21 Cleanup additional GCC warnings
When turning on the following flags, several additional warnings
were generated, which have been cleaned up in this patch. The
flags included:

-Wextra
-Wpedantic
-Wconversion
-Wsign-conversion
-Wctor-dtor-privacy
-Wshadow
-Wnon-virtual-dtor
-Wold-style-cast
-Wcast-align
-Woverloaded-virtual
2016-11-03 18:38:32 -07:00
Rian Quinn
fb1a89fb14 Fix gsl::at()'s use of size_t
gsl::at should use std::ptrdiff_t instead of size_t. This patch
fixes that, and adds missing unit tests
2016-10-28 11:46:14 -07:00
Rian Quinn
6cffe0d14c Adds gsl::span::at()
As per this discussion:
https://github.com/Microsoft/GSL/issues/402

This patch adds support for at() to gsl::span
2016-10-26 14:11:24 -07:00
Marc Mutz
1e95421889 [#392] Don't install tests
'make install' should install the GSL library (ie. the headers),
not the tests.

It still installs the UnitTest++ headers, but that will be more
complex to fix, as GSL just imports UnitTest++ as a git submodule,
and the install command propagates down to UnitTest++'s
CMakeLists.txt.
2016-10-17 12:42:58 -07:00
MikeGitb
1287e624cd Address #313: try to guard against strict-aliasing bugs with gsl::byte
* Add test to demonstrate byte aliasing problem on g++ and clang++

* Add note about no-strict-aliasing flag in README

* Activate aliasing unit test and use -fno-strict-aliasing flag
2016-10-17 12:36:11 -07:00
Neil MacIntosh
fd5ad87bf2 Add tests for to_integer(), fix to_integer() 2016-09-20 08:47:49 -07:00
Neil MacIntosh
e4de6cccdd Fix wrong types in multi_span_test for comparison operators. 2016-09-20 08:46:27 -07:00
Krzysztof Wrzalik
22c2785452 Added tests for negative multi-span access. 2016-09-18 17:44:45 +02:00
Michael Balszun
95f465aeca fix wrong types in multi_span_test (<comparison_operators>) 2016-09-17 16:09:21 +02:00
Martin Moene
ad991370da Add tests for to_integer(): they fail 2016-09-17 09:16:15 +02:00
Neil MacIntosh
6bc1e7e709 Fix for #313 Corrected SFINAE for conversion constructors on span 2016-09-13 12:19:19 -07:00
Neil MacIntosh
3b2419532e Corrected SFINAE for conversion constructors on span. 2016-09-12 18:51:23 -07:00
Kris
d5847ceef0 Merge remote-tracking branch 'Microsoft/master' 2016-09-07 22:16:19 +01:00
Kris Cruickshank
55b232dde4 Issue: #329
This is my best attempt at fixing the issues raised by @gdr-at-ms while supporting VS2013, VS2015, providing shorter syntax than the static_cast and giving developer meaningful errors when they do the wrong thing.
2016-09-07 21:38:43 +01:00
Gary Furnish
ec109d2374 Add to_basic_string 2016-09-04 00:29:10 -06:00
Kris
95bbaa1ec2 Added to_byte method for issue #329
I have added the to_byte method and updated the unit tests.

This gives slightly nicer syntax than static_cast, is better than the
c-style cast used in the unit test.

See: https://github.com/Microsoft/GSL/issues/329#issuecomment-240588515
2016-08-28 21:55:58 +01:00
ericLemanissier
134f2db5d9 Specialize gsl::at for span
span being a view and not a container, the generic version of gsl::at is not valid any more for span.
This commits adds a specialization of gsl::at for span
2016-08-23 12:18:36 +02:00
Neil MacIntosh
f3e660a5a5 Added basic test for interop with std::regex as per Issue #271. 2016-08-10 19:39:48 -07:00
Neil MacIntosh
d6ac640271 Added basic test for interop with std::regex as per Issue #271. 2016-08-10 19:32:00 -07:00
Neil MacIntosh
6b4ae834a3 Merge branch 'master' into dev/neilmac/iterators 2016-08-10 19:00:43 -07:00
Galik
222c2d85fd Removed .h extension from header files. 2016-08-10 17:24:00 +01:00
Neil MacIntosh
5ebfc16f14 Merge branch 'master' into dev/neilmac/spans_in_maps 2016-08-09 18:14:11 -07:00
Neil MacIntosh
f9f08a56fa Added test for Issue #305. 2016-08-09 18:07:17 -07: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
32ee66d320 Added basic tests for std::begin/end and friends (Issue #252). 2016-08-08 13:48:12 -07:00
Neil MacIntosh
0dd5f56bed Fixed unused variable and ran clang-format. Tested on gcc/clang. 2016-08-08 13:33:02 -07:00
Neil MacIntosh
82389aa630 Fixed up iterator implementation to allow conversion from iterator to
const_iterator.
2016-08-08 12:06:47 -07:00
Som1Lse
c4817358aa Implemented https://github.com/Microsoft/GSL/issues/260 2016-08-03 22:28:25 +02: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
c366f4415d Fixed compilation issues for GCC on Linux. 2016-07-26 18:34:27 -07:00
Neil MacIntosh
ca4cdd80de 64-bit clean fixes. 2016-07-20 12:47:21 -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
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
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
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
Sergiy Oryekhov
79030c5586 Moving submodule init before subdirectory. 2016-03-23 16:53:00 -07:00
Sergiy Oryekhov
32d00796ad Adding unittest-cpp as a submodule. 2016-03-23 16:42:35 -07:00
Neil MacIntosh
85939048b4 Test for operator function call. 2016-03-18 16:53:16 -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
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
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
b4ff206c24 Added zstring_span and removed zstring_builder to support legacy strings 2016-02-03 19:30:34 -08:00
Anna Gringauze
eb05256ffe Fixed compilation issues in MSVC 2013 2015-12-14 20:43:58 -08:00
Anna Gringauze
87c5daa6c4 Fixed operators and constructors for string_span 2015-12-07 00:14:25 -08:00
Anna Gringauze
4efa9e8f07 Run clang format 2015-12-02 12:43:45 -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
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
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
b9565e50ce Update CMakeLists.txt 2015-11-12 19:36:34 -08:00
Neil MacIntosh
fa056f67e8 Enabled -Wall for gcc and clang. 2015-11-13 03:27:53 +00:00
Neil MacIntosh
a998a9b33b Turned on Level 3 warnings for MSVC. 2015-11-12 18:57:23 -08: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
dbf0d5017c Reactivated tests disabled during development. 2015-11-04 12:17:41 -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
16d1e77568 Merge remote-tracking branch 'origin' into dev/neilmac/indextype 2015-11-02 19:01:59 -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
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
Anna Gringauze
a4654a46b5 Removed arrow_proxy class, fixes bugs in reverse bounds_iterator 2015-10-16 17:15:56 -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
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
kkoenig
144ee44132 First arg of vector ctor should be num elements, second should be value. Fixes issue #121 2015-10-03 22:02:49 -07:00
Treb Connell
b8ec73a179 Fix moving a final_act twice 2015-10-02 15:58:23 -07:00
Neil MacIntosh
ef626fd33a Renamed namespace to 'gsl'. Renamed macro to configure testing. 2015-09-29 16:41:37 -07:00
john-lynch
ae24c0fe06 Added test that Final_act object can be moved properly. While this is not a common case, it may happen if the user calls finally and the compiler fails to perform RVO. 2015-09-29 00:03:15 -05:00
Treb Connell
444bf9640a Fix issue #49 2015-09-28 18:49:53 -07:00
Treb Connell
83333419de Add test that reproduces issue 2015-09-28 18:34:04 -07:00
Treb Connell
b29566628e Revert "Fix issue #49"
This reverts commit a46d6fcf0d.
2015-09-28 18:26:35 -07:00
Treb Connell
a46d6fcf0d Fix issue #49 2015-09-28 15:17:37 -07:00
Kern Handa
7d8e609faf Merge remote-tracking branch 'upstream/master' into kernhanda/heterogenous-assignment-not_null 2015-09-28 07:37:06 +00:00
Kern Handa
783eaabf9d Add various copy assignment operators to not_null and maybe_null_*.
Also removed unused constant member variable that seemed to be there
to prevent maybe_null_* being used with anything other than a pointer,
which is being taken care of with a static_assert now.
2015-09-28 07:35:18 +00:00
Neil MacIntosh
bb169976da Fixed leak in owner<> test. Ha ha ha! 2015-09-27 18:06:51 -07:00
Kern Handa
2b6d90436f not_null and maybe_null variants should only work on nullptr-assignable types.
This is in accordance with the GSL.View guidance on not_null and maybe_null
types in the CppCoreGuidelines document.
2015-09-27 19:35:23 +00:00
Neil MacIntosh
8ae77b1fd5 Merge pull request #46 from trebconnell/fixmaybenull
Fix issue #45: comparing two maybe_null_dbg's can cause fail_fast
2015-09-24 15:22:43 -07:00
Treb Connell
996aa06e08 Fix issue #45: comparing two maybe_null_dbg's can cause fail_fast 2015-09-24 14:09:40 -07:00
Tamas Kenez
9b454b7a9b add travis testing (gcc5, clang36)
- also relaxed CMake version to 2.8.7, the version default in travis
2015-09-23 17:43:36 +02:00
David Capello
5d9aae7430 Add add_gsl_test() function in tests/CMakeLists.txt
With this function we can avoid duplicated code to add a new test.
2015-09-21 16:04:06 -03:00
Neil MacIntosh
05e6b6dd4b Added missing owner<T>, corrected array_view::sub(). 2015-09-20 19:18:12 -07:00
Anna Gringauze
1a86498733 Formatting 2015-09-14 18:55:06 -07:00
Neil MacIntosh
54ec02fef6 Fixing misformatting of ArrayViewComparison. 2015-09-14 18:04:40 -07:00
Neil MacIntosh
3ff9b17a9f Restoring empty_array_view tests. 2015-09-14 17:57:29 -07:00
Neil MacIntosh
c6a2f8c086 Testing tab fixup. 2015-09-14 17:51:31 -07:00
Neil MacIntosh
383dc507a4 Fixes for review feedback. 2015-09-14 15:41:40 -07:00
Neil MacIntosh
9a29712022 Ensuring compilation works for VS 2013. 2015-09-14 15:11:07 -07:00
Neil MacIntosh
ef6cc65053 Fixed compilation issues with Clang and GCC on Linux. 2015-09-14 21:26:17 +00:00
Anna Gringauze
17ed5c3664 Fixed issues in strided_array_views, added tests 2015-09-14 13:03:28 -07:00
Neil MacIntosh
75f31dabe9 Removed Debug build warnings from MSVC STL. 2015-08-27 22:15:44 -07:00
Neil MacIntosh
9f9fad9620 Implemented comparison operators on array_view. 2015-08-27 18:13:49 -07:00
Anna Gringauze
5e945461c9 Fixed unittest directory check to look in the source directory 2015-08-25 11:50:58 -07:00
Neil MacIntosh
a9dcbe04ff Initial commit of library files. 2015-08-20 18:09:14 -07:00