ã½ã¼ã¹ãã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã
ç¾å¨ã®ã½ã¼ã¹ãã¡ã¤ã«ã®æä»¤ã®ç´å¾ã®è¡ã«ä»ã®ã½ã¼ã¹ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ããã¾ãã
ç®æ¬¡ |
[ç·¨é] æ§æ
#include < filename>
|
(1) | ||||||||
#include " filename"
|
(2) | ||||||||
__has_include ( " filename " ) __has_include ( < filename > )
|
(3) | (C++17以ä¸) | |||||||
ä»»æã®ããªããã»ããµãã¼ã¯ã³ (ãã¯ã宿°ã¾ãã¯å¼) ã¯ã <
>
ã¾ã㯠"
"
ã«ãã£ã¦å²ã¾ããæåã®ä¸¦ã³ã«å±éãããéãã #include
ããã³ __has_include
(C++17以ä¸) ã¸ã®å¼æ°ã¨ãã¦èªãããã¾ãã
[ç·¨é] 説æ
#include
æä»¤ã«å¯¾ããæå¹ãªå¼æ°ã§ãªããã°ãããã°ã©ã 㯠ill-formed ã§ãã[ç·¨é] ãã¼ã
ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ããããã¨ããããã¯ç¿»è¨³ãã§ã¼ãº1ã4ã§å¦çããã¾ãã ãã¹ããã #include
ã®å±éãå帰çã«å«ããã¨ãããã¾ãã åããã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ãã®ç¹°ãè¿ããèªåèªèº«ãã¤ã³ã¯ã«ã¼ãããã¨ãã®ç¡éå帰ãåé¿ããããããããã¬ã¼ãããã使ç¨ããã¾ãã ãããå
¨ä½ã以ä¸ã®ããã«ã©ããããã¾ãã
#ifndef FOO_H_INCLUDED /* ãã¡ã¤ã«åã«å¯¾å¿ããä»»æã®ä¸æãªåå */ #define FOO_H_INCLUDED // ããã«ãã¡ã¤ã«ã®å å®¹ãæ¸ãã¾ã #endif
å¤ãã®ã³ã³ãã¤ã©ã¯åæ§ã®å¹æãæã¤éæ¨æºã®ãã©ã°ã #pragma once ãå®è£ ãã¦ãã¾ãã ããã¯ãåããã¡ã¤ã« (ãã¡ã¤ã«ã®å䏿§ã¯ OS åºæã®æ¹æ³ã§æ±ºå®ããã¾ã) ããã§ã«ã¤ã³ã¯ã«ã¼ãããã¦ããå ´åã«ããã¡ã¤ã«ã®å¦çãç¡å¹åãã¾ãã
__has_include
ã®çµæã 1 ã§ãããã¨ã¯ãæå®ãããååã®ãããã¾ãã¯ã½ã¼ã¹ãã¡ã¤ã«ãåå¨ãããã¨ãæå³ããã ãã§ãã ã¤ã³ã¯ã«ã¼ãããã¨ãã«ã¨ã©ã¼ãçºçããªãã¨ããä½ãå½¹ã«ç«ã¤ãã®ãå«ãã§ããã¨ãã£ããã¨ã¯æå³ãã¾ããã ä¾ãã°ã C++14 㨠C++17 ã®ä¸¡æ¹ã®ã¢ã¼ãããµãã¼ããã (ããã¦æºæ ããæ¡å¼µã¨ã㦠C++14 ã¢ã¼ãã§ __has_include ãæä¾ãã) å¦çç³»ã«ããã¦ã C++14 ã¢ã¼ãã§ __has_include(<optional>) 㯠1 ã«ãªãããããã¾ããããå®éã«ã¯ #include <optional> ã¯ã¨ã©ã¼ãçºçããããããã¾ããã
[ç·¨é] ä¾
#if __has_include(<optional>) # include <optional> # define have_optional 1 #elif __has_include(<experimental/optional>) # include <experimental/optional> # define have_optional 1 # define experimental_optional 1 #else # define have_optional 0 #endif #include <iostream> int main() { if (have_optional) std::cout << "<optional> is present.\n"; int x = 42; #if have_optional == 1 std::optional<int> i = x; #else int* i = &x; #endif std::cout << "i = " << *i << '\n'; }
åºåä¾:
<optional> is present. i = 42
[ç·¨é] é¢é£é ç®
cpp/header | C++ æ¨æºã©ã¤ãã©ãªã®ããããã¡ã¤ã«ã®ä¸è¦§ |
ã½ã¼ã¹ãã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã ã® Cè¨èªãªãã¡ã¬ã³ã¹
|