Boost C++ Libraries: Ticket #9506: @#ifndef - what's it doing in Boost sources? https://svn.boost.org/trac10/ticket/9506 <p> Looking at the boost file: </p> <p> <a href="http://www.boost.org/doc/libs/1_55_0b1/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp">http://www.boost.org/doc/libs/1_55_0b1/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp</a> </p> <p> towards the end, there are these lines: </p> <p> @#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING template &lt;class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) [...] struct is_function_ptr_helper&lt;R (*)(BOOST_PP_ENUM_PARA [...] @#endif </p> <p> What are the @ characters doing there? I can't find any reference to @ being an allowable character (at least in the C++98 Standard). </p> <p> The @ characters also appear in is_function_ptr_helper.hpp </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/9506 Trac 1.4.3 John Maddock Mon, 21 Apr 2014 08:43:09 GMT status changed; resolution set https://svn.boost.org/trac10/ticket/9506#comment:1 https://svn.boost.org/trac10/ticket/9506#comment:1 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">wontfix</span> </li> </ul> <p> I didn't write that part, but from memory, they were chosen to deliberately be invalid code: the code there was used to generate content of the header, and is archived for posterity, but should otherwise never be used. </p> Ticket