Commit Graph

294 Commits

Author SHA1 Message Date
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
john-lynch
422e7164d5 Fixing move constructor of Final_act to take non-const r-value reference and move properly from other Final_act object so that correctness is not dependent on copy elison. 2015-09-28 23:40:25 -05:00
Neil MacIntosh
065f4880c3 Merge pull request #88 from trebconnell/fixmaybenull
Fix issue #49
2015-09-28 18:54:31 -07:00
Treb Connell
444bf9640a Fix issue #49 2015-09-28 18:49:53 -07:00
Neil MacIntosh
318cee0489 Merge pull request #87 from trebconnell/fixmaybenull
Fix issue #50
2015-09-28 18:40:57 -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
Treb Connell
27ff004e84 Merge branch 'master' into fixmaybenull
Conflicts:
	include/gsl.h
	tests/maybenull_tests.cpp
2015-09-28 14:56:08 -07:00
Kosov Eugene
e46160c18e it's better to pass a small (e.g. 16 bytes) object by value then by const reference 2015-09-28 23:20:28 +03:00
Kosov Eugene
3402b92ef6 fix clang -Wunused-parameter warnings 2015-09-28 21:20:02 +03:00
Neil MacIntosh
3571792058 Merge pull request #78 from kernhanda/kernhanda/heterogenous-assignment-not_null
Add various copy assignment operators to not_null and maybe_null_*.
2015-09-28 07:05:43 -07:00
Gabriel Dos Reis
6554e83c79 Macro expand constexpr to nothing under MSVC
Replace `_CONSTEXPR` with plain `constexpr`.
2015-09-28 05:10:44 -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
99746e2d57 Correct fix for int/size_t mismatch. 2015-09-27 16:53:58 -07:00
Neil MacIntosh
fb91393bb2 Fixing size_t/int mismatch in loops. 2015-09-27 16:25:43 -07:00
Kern Handa
f1be21aa36 Merged Microsoft/GSL:master into branch and resolved conflicts. 2015-09-27 23:25:20 +00: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
Gabriel Dos Reis
599a354b1c Merge pull request #59 from kernhanda/kernhanda/size_t
Rank and dimensions should be size_t.
2015-09-27 12:21:22 -07:00
saurabh singh
437791e504 GSL::finally can make use of move semantics
for eg consider this case
[code]
string value = "someVeryLongErrorMessageIAm";
finally([value] { PrintErrorMessage(value); }
[/code]
With the current changes before the call to PrintErrorMessage there will be 3 calls to copy constructor for string(1 when it's captured in closure, 2nd when finally is called and 3rd when it's passed to Final_act . With my patch there will be 1 call to the copy constructor and 2 to the move constructor for the scenario in example, so 2 potential deep copies will be saved for some objects.
Validated that code builds from root, and all tests pass after my change. Also validated that indeed copy constructor calls are saved for objects that support move semantics.
2015-09-27 16:11:12 +05:30
Kern Handa
c4f9b87d96 We should be using standard algorithms where possible.
Use of algorithms in the STL should be promoted where possible.
Also fixed up some whitespace issues.
2015-09-25 17:11:17 -07:00
Treb Connell
1a791992a0 Add equality operators to maybe_nul_ret 2015-09-25 12:16:39 -07:00
Kern Handa
e157026807 Rank and dimensions should be size_t. 2015-09-25 00:42:38 -07:00
Treb Connell
51da13607c Fix issue #39: Add header guards 2015-09-24 18:08:34 -07:00
Treb Connell
35fb11853f Fix issues #48 #49 #50 2015-09-24 18:02:37 -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
galik
cb068d80cd missing header <stdexcept> 2015-09-21 22:51:46 +01:00
Gabriel Dos Reis
65655da087 Tidy testing for _MSC_VER 2015-09-21 03:09:33 -07:00
Gabriel Dos Reis
4573197546 Merge pull request #10 from galik/master
Prevent unused parameter warnings and unknown #pragma warnings on GCC.
2015-09-21 01:51:22 -07:00
Neil MacIntosh
05e6b6dd4b Added missing owner<T>, corrected array_view::sub(). 2015-09-20 19:18:12 -07:00
galik
cab9bda249 Prevent unused parameter warnings and unknown #pragma warnings on GCC. 2015-09-19 07:52:30 +01:00
Anna Gringauze
9dac178768 Formatting 2015-09-14 19:08:03 -07:00
Anna Gringauze
1a86498733 Formatting 2015-09-14 18:55:06 -07:00
Neil MacIntosh
006721ce8a Merge remote-tracking branch 'upstream/dev/annagrin/strided_array_view_bugfixes' into dev/annagrin/strided_array_view_bugfixes
Conflicts:
	include/array_view.h
2015-09-14 17:22:56 -07:00
Anna Gringauze
e5b79d242c Reverted formatting changes 2015-09-14 16:38:25 -07:00
Anna Gringauze
18cd9801b5 Reverted formatting changes 2015-09-14 16:34:26 -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
9b40a0a7c8 Fixed compile error with GCC/clang. 2015-08-27 19:49:27 -07:00
Neil MacIntosh
9f9fad9620 Implemented comparison operators on array_view. 2015-08-27 18:13:49 -07:00
Neil MacIntosh
a9dcbe04ff Initial commit of library files. 2015-08-20 18:09:14 -07:00