File tree Expand file tree Collapse file tree 4 files changed +48
-5
lines changed Expand file tree Collapse file tree 4 files changed +48
-5
lines changed Original file line number Diff line number Diff line change 11os :
2- - Visual Studio 2015
3- - Visual Studio 2017
2+ - Visual Studio 2017
3+ - Visual Studio 2015
4+
5+ environment :
6+ matrix :
7+ - STD : 17
8+ - STD : 14
49
510build_script :
611 - git submodule update --init --recursive
712 - mkdir build
813 - cd build
9- - cmake ..
14+ - cmake -DCMAKE_CXX_STANDARD=%STD% -DCMAKE_CXX_STANDARD_REQUIRED=True ..
1015 - cmake --build .
1116 - C:\projects\function-ref\build\Debug\tests.exe
17+
18+ matrix :
19+ exclude :
20+ - os : Visual Studio 2015
21+ STD : 17
Original file line number Diff line number Diff line change @@ -5,6 +5,14 @@ sudo: false
55
66matrix :
77 include :
8+ - compiler : gcc
9+ addons :
10+ apt :
11+ sources :
12+ - ubuntu-toolchain-r-test
13+ packages :
14+ - g++-7
15+ env : COMPILER=g++-7 CXX_STANDARD=17
816 - compiler : gcc
917 addons :
1018 apt :
Original file line number Diff line number Diff line change @@ -20,6 +20,12 @@ include(add-tl)
2020tl_add_library(function-ref ARCH_INDEPENDENT SOURCES
2121 include /tl/function_ref.hpp)
2222
23+ # make sure we see the C++ version, even in MSVC:
24+ # https://stackoverflow.com/questions/57102212/cannot-set-cplusplus-to-c17-standard-with-visual-studio-and-cmake
25+ if ((MSVC ) AND (MSVC_VERSION GREATER_EQUAL 1914))
26+ target_compile_options (function-ref INTERFACE "/Zc:__cplusplus" )
27+ endif ()
28+
2329# Prepare "Catch" library for other executables
2430set (CATCH_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR} /test )
2531add_library (Catch INTERFACE )
@@ -37,5 +43,8 @@ if(FUNCTION_REF_ENABLE_TESTS)
3743
3844 target_link_libraries (tests Catch function-ref)
3945
40- set_property (TARGET tests PROPERTY CXX_STANDARD 14)
46+ message (STATUS "CMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} " )
47+ if (NOT CMAKE_CXX_STANDARD)
48+ set_property (TARGET tests PROPERTY CXX_STANDARD 14)
49+ endif ()
4150endif ()
Original file line number Diff line number Diff line change @@ -29,4 +29,20 @@ TEST_CASE("Issue #10") {
2929 int z = 12 ;
3030 auto f = [&](const std::vector<int > i) { return i[0 ] * z; };
3131 foo (f);
32- }
32+ }
33+
34+ #if __cplusplus >= 201703
35+ struct NonCopyNonMove {
36+ NonCopyNonMove () = default ;
37+ NonCopyNonMove (const NonCopyNonMove &) = delete ;
38+ NonCopyNonMove (NonCopyNonMove &&) = delete ;
39+ };
40+
41+ TEST_CASE (" Issue #20" ) {
42+ auto f = []() { return NonCopyNonMove (); };
43+ auto fr = tl::function_ref<NonCopyNonMove ()>(f);
44+
45+ // silence warnings
46+ (void )fr;
47+ }
48+ #endif
You can’t perform that action at this time.
0 commit comments