Merge "Build with C++20"
diff --git a/CMakeLists.txt b/CMakeLists.txt
index df78b3c..e61c6c6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,6 +1,6 @@
 project(netconf-cli LANGUAGES CXX)
 cmake_minimum_required(VERSION 3.0)
-set(CMAKE_CXX_STANDARD 17)
+set(CMAKE_CXX_STANDARD 20)
 set(CMAKE_CXX_STANDARD_REQUIRED ON)
 set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
 
@@ -56,6 +56,9 @@
 
 find_package(docopt REQUIRED)
 find_package(Boost REQUIRED COMPONENTS filesystem)
+# Fixes C++20 build
+# https://github.com/boostorg/asio/issues/312
+add_definitions(-DBOOST_ASIO_DISABLE_CONCEPTS)
 find_library(REPLXX_LIBRARY NAMES replxx replxx-d REQUIRED)
 find_path(REPLXX_PATH replxx.hxx)
 if("${REPLXX_PATH}" STREQUAL REPLXX_PATH-NOTFOUND)
@@ -365,7 +368,7 @@
 
 option(WITH_PYTHON_BINDINGS "Create and install Python3 bindings for accessing datastores" OFF)
 if(WITH_PYTHON_BINDINGS)
-    set(PYBIND11_CPP_STANDARD -std=c++17)
+    set(PYBIND11_CPP_STANDARD -std=c++20)
     find_package(pybind11 REQUIRED)
     pybind11_add_module(netconf_cli_py src/python_netconf.cpp)
     target_link_libraries(netconf_cli_py PUBLIC netconfaccess)
diff --git a/tests/leaf_data_helpers.hpp b/tests/leaf_data_helpers.hpp
index 0a28ae3..91eb3f2 100644
--- a/tests/leaf_data_helpers.hpp
+++ b/tests/leaf_data_helpers.hpp
@@ -1,4 +1,5 @@
 #include <algorithm>
+#include "ast_values.hpp"
 #include "leaf_data_type.hpp"
 yang::Enum createEnum(const std::initializer_list<const char*>& list)
 {