3 <title>BOOST_PP_INCLUDE_SELF
</title>
4 <link rel=
"stylesheet" type=
"text/css" href=
"../styles.css">
7 <div style=
"margin-left: 0px;">
8 The
<b>BOOST_PP_INCLUDE_SELF
</b> macro includes a file indirectly.
12 #include
<b>BOOST_PP_INCLUDE_SELF
</b>()
18 A quoted or angle-bracketed filename to be included by
<b>BOOST_PP_INCLUDE_SELF
</b>.
23 <b>BOOST_PP_INDIRECT_SELF
</b> must be defined prior to using this macro.
26 Most preprocessors will not allow a file to directly include itself--even when the file protects itself from such a scenario.
27 This macro, in combination with
<b>BOOST_PP_INDIRECT_SELF
</b> allows a file to include itself indirectly.
30 While
<b>BOOST_PP_INDIRECT_SELF
</b> is being included,
<b>BOOST_PP_INCLUDE_SELF
</b> defines the macro
<b>BOOST_PP_IS_SELFISH
</b> to
<i>1</i>.
31 When it returns from the inclusion,
<b>BOOST_PP_IS_SELFISH
</b> is undefined.
35 <li><a href=
"indirect_self.html">BOOST_PP_INDIRECT_SELF
</a></li>
36 <li><a href=
"is_selfish.html">BOOST_PP_IS_SELFISH
</a></li>
40 <b>Header:
</b> <a href=
"../headers/iteration/self.html"><boost/preprocessor/iteration/self.hpp
></a>
45 #if !
<a href=
"is_selfish.html">BOOST_PP_IS_SELFISH
</a>
50 #include
<<a href=
"../headers/iteration/self.html">boost/preprocessor/iteration/self.hpp
</a>>
55 #define
<a href=
"indirect_self.html">BOOST_PP_INDIRECT_SELF
</a> "file.h"
56 #include
<a href=
"include_self.html">BOOST_PP_INCLUDE_SELF
</a>()
62 #define
<a href=
"indirect_self.html">BOOST_PP_INDIRECT_SELF
</a> "file.h"
63 #include
<a href=
"include_self.html">BOOST_PP_INCLUDE_SELF
</a>()
69 #define
<a href=
"indirect_self.html">BOOST_PP_INDIRECT_SELF
</a> "file.h"
70 #include
<a href=
"include_self.html">BOOST_PP_INCLUDE_SELF
</a>()
77 inline bool validate(NAME* p) {
81 template
<class T
> bool validate(T* p) {
82 return dynamic_cast
<NAME*
>(p);
90 <div style=
"margin-left: 0px;">
91 <i>© Copyright
<a href=
"http://www.housemarque.com" target=
"_top">Housemarque Oy
</a> 2002</i>
92 </br><i>© Copyright Paul Mensonides
2002</i>
94 <div style=
"margin-left: 0px;">
95 <p><small>Distributed under the Boost Software License, Version
1.0. (See
96 accompanying file
<a href=
"../../../../LICENSE_1_0.txt">LICENSE_1_0.txt
</a> or
98 "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt
</a>)
</small></p>