C++ Logo

SG10

Advanced search

Subject: [SG10] __has_include
From: Richard Smith (richard_at_[hidden])
Date: 2013-06-19 14:11:02


Starting with an example, here's how the new C++14 headers could be
detected and used:

#ifndef __has_include
#define __has_include(x) 0
#endif

#if __has_include(<optional>)
#include <optional>
#endif

#if __has_include(<dynarray>)
#include <dynarray>
#endif

Specification:

__has_include is a predefined function-like macro.
__has_include(pp-tokens) expands to 1 if the preprocessing directive

  #include pp-tokens

would identify a header or source file (16.2/1). Otherwise, it expands to 0.

Clang's documentation for __has_include is at
http://clang.llvm.org/docs/LanguageExtensions.html#include-file-checking-macros


SG10 list run by sg10-owner@lists.isocpp.org