Browse Source

Fix optional being in experimental/ with some compilers

pull/1702/head
Jmgr 5 years ago committed by Anders Jenbo
parent
commit
2b672289e1
  1. 1
      CMakeLists.txt
  2. 4
      Source/utils/paths.cpp
  3. 14
      Source/utils/stdcompat/optional.hpp

1
CMakeLists.txt

@ -706,6 +706,7 @@ endif()
if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
target_compile_options(${BIN_TARGET} PRIVATE "/W0")
target_compile_options(${BIN_TARGET} PRIVATE "/Zc:__cplusplus")
endif()
if(APPLE)

4
Source/utils/paths.cpp

@ -1,8 +1,10 @@
#include "utils/paths.h"
#include "utils/log.hpp"
#include <SDL.h>
#include "utils/stdcompat/optional.hpp"
#include "utils/log.hpp"
#ifdef USE_SDL1
#include "utils/sdl2_to_1_2_backports.h"
#endif

14
Source/utils/stdcompat/optional.hpp

@ -0,0 +1,14 @@
#pragma once
#ifdef __has_include
#if defined(__cplusplus) && __cplusplus >= 201606L && __has_include(<optional>)
#include <optional> // IWYU pragma: export
#elif __has_include(<experimental/optional>)
#include <experimental/optional> // IWYU pragma: export
#define optional experimental::optional
#else
#error "Missing support for <optional> or <experimental/optional>"
#endif
#else
#error "__has_include unavailable"
#endif
Loading…
Cancel
Save