Skip to content

Commit 285f03e

Browse files
authored
Enable building phasar with C++20 (#618)
1 parent 0309ccb commit 285f03e

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

CMakeLists.txt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,15 @@ if (NOT PHASAR_IN_TREE)
1010
set(CMAKE_PROJECT_NAME "phasar")
1111
endif ()
1212

13+
option(PHASAR_EXPERIMENTAL_CXX20 "Build phasar in C++20 mode. THis is an experimental feature" OFF)
14+
1315
set(CMAKE_EXPORT_COMPILE_COMMANDS YES)
14-
set(CMAKE_CXX_STANDARD 17)
16+
if(PHASAR_EXPERIMENTAL_CXX20)
17+
message(STATUS "Selected experimental C++ build")
18+
set(CMAKE_CXX_STANDARD 20)
19+
else()
20+
set(CMAKE_CXX_STANDARD 17)
21+
endif()
1522
set(CMAKE_CXX_STANDARD_REQUIRED ON)
1623
set(CMAKE_CXX_EXTENSIONS OFF)
1724

include/phasar/DataFlow/IfdsIde/EdgeFunction.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -222,10 +222,8 @@ class [[clang::trivial_abi]] EdgeFunction final : EdgeFunctionBase {
222222

223223
/// Implicit-conversion constructor from EdgeFunctionRef. Increments the
224224
/// ref-count if not small-object optimized
225-
template <typename ConcreteEF,
226-
typename = std::enable_if_t<
227-
!std::is_same_v<EdgeFunction, std::decay_t<ConcreteEF>> &&
228-
IsEdgeFunction<ConcreteEF>>>
225+
template <typename ConcreteEF, typename = std::enable_if_t<!std::is_same_v<
226+
EdgeFunction, std::decay_t<ConcreteEF>>>>
229227
EdgeFunction(EdgeFunctionRef<ConcreteEF> CEF) noexcept
230228
: EdgeFunction(CEF.Instance,
231229
{&VTableFor<ConcreteEF>, [CEF] {

0 commit comments

Comments
 (0)