From ebce4920d66816f8c9addb288cfe67bef41f07a2 Mon Sep 17 00:00:00 2001 From: Neil MacIntosh Date: Tue, 2 Aug 2016 16:22:18 -0700 Subject: [PATCH 1/2] Fixed #308 - a mismatched pragma. --- include/span.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/include/span.h b/include/span.h index a612983..b7a3d77 100644 --- a/include/span.h +++ b/include/span.h @@ -2221,10 +2221,13 @@ general_span_iterator operator+(typename general_span_iterator::diff #undef noexcept #ifdef _MSC_VER -#pragma warning(pop) #pragma pop_macro("noexcept") #endif #endif // GSL_THROW_ON_CONTRACT_VIOLATION +#ifdef _MSC_VER +#pragma warning(pop) +#endif + #endif // GSL_SPAN_H From f6cc5798a17daccf806bbc402a67c92d1a205091 Mon Sep 17 00:00:00 2001 From: galik Date: Tue, 9 Aug 2016 15:04:58 +0100 Subject: [PATCH 2/2] 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 Updated headers/tests/instructions/cmake build accordingly This PR should address https://github.com/Microsoft/GSL/issues/277 (less the renaming of gsl itself) --- CMakeLists.txt | 8 ++++---- README.md | 25 ++++++++++++++++++++----- {include => gsl}/gsl.h | 0 {include => gsl}/gsl_assert.h | 0 {include => gsl}/gsl_byte.h | 0 {include => gsl}/gsl_util.h | 0 {include => gsl}/multi_span.h | 0 {include => gsl}/span.h | 0 {include => gsl}/string_span.h | 0 tests/CMakeLists.txt | 4 ++-- tests/assertion_tests.cpp | 2 +- tests/at_tests.cpp | 2 +- tests/bounds_tests.cpp | 2 +- tests/byte_tests.cpp | 2 +- tests/multi_span_tests.cpp | 2 +- tests/notnull_tests.cpp | 2 +- tests/owner_tests.cpp | 2 +- tests/span_tests.cpp | 2 +- tests/strided_span_tests.cpp | 2 +- tests/string_span_tests.cpp | 2 +- tests/utils_tests.cpp | 2 +- 21 files changed, 37 insertions(+), 22 deletions(-) rename {include => gsl}/gsl.h (100%) rename {include => gsl}/gsl_assert.h (100%) rename {include => gsl}/gsl_byte.h (100%) rename {include => gsl}/gsl_util.h (100%) rename {include => gsl}/multi_span.h (100%) rename {include => gsl}/span.h (100%) rename {include => gsl}/string_span.h (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7397fe2..ba85857 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,10 +3,10 @@ cmake_minimum_required(VERSION 2.8.7) project(GSL CXX) set(GSL_HEADERS - "include/gsl.h" - "include/gsl_assert.h" - "include/span.h" - "include/string_span.h" + "gsl/gsl.h" + "gsl/gsl_assert.h" + "gsl/span.h" + "gsl/string_span.h" ) include_directories( diff --git a/README.md b/README.md index 3c440c2..f54b0c5 100644 --- a/README.md +++ b/README.md @@ -6,10 +6,10 @@ This repo contains Microsoft's implementation of GSL. The library includes types like `span`, `string_span`, `owner<>` and others. -The entire implementation is provided inline in the headers under the [include](./include) directory. The implementation generally assumes a platform that implements C++14 support. There are specific workarounds to support MSVC 2013 and 2015. +The entire implementation is provided inline in the headers under the [gsl](./gsl) directory. The implementation generally assumes a platform that implements C++14 support. There are specific workarounds to support MSVC 2013 and 2015. -While some types have been broken out into their own headers (e.g. [include/span.h](./include/span.h)), -it is simplest to just include [gsl.h](./include/gsl.h) and gain access to the entire library. +While some types have been broken out into their own headers (e.g. [gsl/span.h](./gsl/span.h)), +it is simplest to just include [gsl/gsl.h](./gsl/gsl.h) and gain access to the entire library. > NOTE: We encourage contributions that improve or refine any of the types in this library as well as ports to other platforms. Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for more information about contributing. @@ -66,5 +66,20 @@ All tests should pass - indicating your platform is fully supported and you are ## Using the libraries As the types are entirely implemented inline in headers, there are no linking requirements. -Just place the contents of the [include](./include) directory within your source tree so it is available -to your compiler, then include the appropriate headers in your program, and away you go! +You can copy the [gsl](./gsl) directory into your source tree so it is available +to your compiler, then include the appropriate headers in your program. + +Alternatively set your compiler's *include path* flag to point to the GSL development folder (`c:\GSL` in the example above) or installation folder (after running the install). Eg. + +MSVC++ + + /I c:\GSL + +GCC/clang + + -I$HOME/dev/GSL + + +Include the library using: + + #include diff --git a/include/gsl.h b/gsl/gsl.h similarity index 100% rename from include/gsl.h rename to gsl/gsl.h diff --git a/include/gsl_assert.h b/gsl/gsl_assert.h similarity index 100% rename from include/gsl_assert.h rename to gsl/gsl_assert.h diff --git a/include/gsl_byte.h b/gsl/gsl_byte.h similarity index 100% rename from include/gsl_byte.h rename to gsl/gsl_byte.h diff --git a/include/gsl_util.h b/gsl/gsl_util.h similarity index 100% rename from include/gsl_util.h rename to gsl/gsl_util.h diff --git a/include/multi_span.h b/gsl/multi_span.h similarity index 100% rename from include/multi_span.h rename to gsl/multi_span.h diff --git a/include/span.h b/gsl/span.h similarity index 100% rename from include/span.h rename to gsl/span.h diff --git a/include/string_span.h b/gsl/string_span.h similarity index 100% rename from include/string_span.h rename to gsl/string_span.h diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 79931f7..4a59470 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -9,7 +9,7 @@ endif() add_subdirectory(unittest-cpp) include_directories( - ../include + .. ./unittest-cpp ) @@ -33,7 +33,7 @@ else() endif() function(add_gsl_test name) - add_executable(${name} ${name}.cpp ../include/gsl.h ../include/gsl_assert.h ../include/gsl_util.h ../include/multi_span.h ../include/span.h ../include/string_span.h) + add_executable(${name} ${name}.cpp ../gsl/gsl.h ../gsl/gsl_assert.h ../gsl/gsl_util.h ../gsl/multi_span.h ../gsl/span.h ../gsl/string_span.h) target_link_libraries(${name} UnitTest++) install(TARGETS ${name} RUNTIME DESTINATION bin diff --git a/tests/assertion_tests.cpp b/tests/assertion_tests.cpp index acd381a..4ac1856 100644 --- a/tests/assertion_tests.cpp +++ b/tests/assertion_tests.cpp @@ -15,7 +15,7 @@ /////////////////////////////////////////////////////////////////////////////// #include -#include +#include using namespace gsl; diff --git a/tests/at_tests.cpp b/tests/at_tests.cpp index 1a9f814..53d93d1 100644 --- a/tests/at_tests.cpp +++ b/tests/at_tests.cpp @@ -15,7 +15,7 @@ /////////////////////////////////////////////////////////////////////////////// #include -#include +#include #include #include diff --git a/tests/bounds_tests.cpp b/tests/bounds_tests.cpp index 736a85c..7d5a071 100644 --- a/tests/bounds_tests.cpp +++ b/tests/bounds_tests.cpp @@ -15,7 +15,7 @@ /////////////////////////////////////////////////////////////////////////////// #include -#include +#include #include using namespace std; diff --git a/tests/byte_tests.cpp b/tests/byte_tests.cpp index 5d4e7f6..183bebf 100644 --- a/tests/byte_tests.cpp +++ b/tests/byte_tests.cpp @@ -15,7 +15,7 @@ /////////////////////////////////////////////////////////////////////////////// #include -#include +#include #include #include diff --git a/tests/multi_span_tests.cpp b/tests/multi_span_tests.cpp index 003d236..b2e5b5f 100644 --- a/tests/multi_span_tests.cpp +++ b/tests/multi_span_tests.cpp @@ -15,7 +15,7 @@ /////////////////////////////////////////////////////////////////////////////// #include -#include +#include #include #include diff --git a/tests/notnull_tests.cpp b/tests/notnull_tests.cpp index 67b478a..bc12e9b 100644 --- a/tests/notnull_tests.cpp +++ b/tests/notnull_tests.cpp @@ -15,7 +15,7 @@ /////////////////////////////////////////////////////////////////////////////// #include -#include +#include #include using namespace gsl; diff --git a/tests/owner_tests.cpp b/tests/owner_tests.cpp index 47c223a..3c82022 100644 --- a/tests/owner_tests.cpp +++ b/tests/owner_tests.cpp @@ -15,7 +15,7 @@ /////////////////////////////////////////////////////////////////////////////// #include -#include +#include #include using namespace gsl; diff --git a/tests/span_tests.cpp b/tests/span_tests.cpp index 8c9829d..fb20f77 100644 --- a/tests/span_tests.cpp +++ b/tests/span_tests.cpp @@ -15,7 +15,7 @@ /////////////////////////////////////////////////////////////////////////////// #include -#include +#include #include #include diff --git a/tests/strided_span_tests.cpp b/tests/strided_span_tests.cpp index b81a5e7..4c07670 100644 --- a/tests/strided_span_tests.cpp +++ b/tests/strided_span_tests.cpp @@ -15,7 +15,7 @@ /////////////////////////////////////////////////////////////////////////////// #include -#include +#include #include #include diff --git a/tests/string_span_tests.cpp b/tests/string_span_tests.cpp index 876886a..fbaa9e8 100644 --- a/tests/string_span_tests.cpp +++ b/tests/string_span_tests.cpp @@ -16,7 +16,7 @@ #include #include -#include +#include #include using namespace std; diff --git a/tests/utils_tests.cpp b/tests/utils_tests.cpp index 11582de..8c98223 100644 --- a/tests/utils_tests.cpp +++ b/tests/utils_tests.cpp @@ -15,7 +15,7 @@ /////////////////////////////////////////////////////////////////////////////// #include -#include +#include #include using namespace gsl;