Squashed 'third_party/boostorg/preprocessor/' content from commit 56090c5
Change-Id: I8c0a13225778c3751a35945439d5304bd9e639ef
git-subtree-dir: third_party/boostorg/preprocessor
git-subtree-split: 56090c56b5c78418b6dbe8c3c2ba576395152f83
diff --git a/doc/ref/line.html b/doc/ref/line.html
new file mode 100644
index 0000000..39a90b7
--- /dev/null
+++ b/doc/ref/line.html
@@ -0,0 +1,112 @@
+<html>
+<head>
+ <title>BOOST_PP_LINE</title>
+ <link rel="stylesheet" type="text/css" href="../styles.css">
+</head>
+<body>
+ <div style="margin-left: 0px;">
+ The <b>BOOST_PP_LINE</b> macro places notes encoded as line directives in the preprocessing output.
+ </div>
+ <h4>Usage</h4>
+ <div class="code">
+ #line <b>BOOST_PP_LINE</b>(<i>line</i>, <i>file</i>)
+ </div>
+ <h4>Arguments</h4>
+ <dl>
+ <dt>line</dt>
+ <dd>
+ The new line number of the trailing line.
+ The predefined macro <i>__LINE__</i> is commonly used.
+ </dd>
+ <dt>file</dt>
+ <dd>
+ Typically the name of the current file.
+ However, any informative text will work.
+ This text is internally stringized, so quotation marks are unnecessary.
+ </dd>
+ </dl>
+ <h4>Remarks</h4>
+ <div>
+ If the macro <b>BOOST_PP_CONFIG_EXTENDED_LINE_INFO</b> is defined as <i>1</i> and a <i>file-iteration</i>
+ is in progress, this macro will automatically insert debugging information about the state of <i>file-iteration</i>.
+ This information will show the all of the current iteration values with the inner most iteration last.
+ </div>
+ <div>
+ This information is useful when errors might be spanning multiple iterations of the same source text.
+ Finding any errors is sometimes less than straightforward.
+ Use of this macro can provide information to make this much easier.
+ For example, instead of getting several errors like this:
+ <div><i>
+ "file.hpp", line 2: error: expected a ";"<br>
+ "file.hpp", line 4: error: improperly terminated macro invocation<br>
+ </i></div>
+ You might get something like this instead....
+ <i><div>
+ "file.hpp [1]", line 2: error: expected a ";"<br>
+ "file.hpp [5]", line 4: error: improperly terminated macro invocation<br>
+ </i></div>
+ It is immediately evident that this error is spanning multiple iterations of the same source text.
+ If it wasn't, the same errors would occur on each iteration.
+ </div>
+ <div>
+ It must be noted however, that some compilers don't like filenames that aren't actually files.
+ Those compilers typically issues warnings about the bad filename.
+ This makes it a good idea to only define <b>BOOST_PP_CONFIG_EXTENDED_LINE_INFO</b> to <i>1</i> <i>only</i> when debugging.
+ </div>
+ <h4>See Also</h4>
+ <ul>
+ <li><a href="config_extended_line_info.html">BOOST_PP_CONFIG_EXTENDED_LINE_INFO</a></li>
+ </ul>
+ <h4>Requirements</h4>
+ <div>
+ <b>Header:</b> <a href="../headers/debug/line.html"><boost/preprocessor/debug/line.hpp></a>
+ </div>
+ <h4>Sample Code</h4>
+<div><pre>
+// sample.cpp
+#if !defined(<a href="is_iterating.html">BOOST_PP_IS_ITERATING</a>)
+
+ #define <a href="config_extended_line_info.html">BOOST_PP_CONFIG_EXTENDED_LINE_INFO</a> 1
+
+ #include <<a href="../headers/arithmetic/dec.html">boost/preprocessor/arithmetic/dec.hpp</a>>
+ #include <<a href="../headers/cat.html">boost/preprocessor/cat.hpp</a>>
+ #include <<a href="../headers/debug/line.html">boost/preprocessor/debug/line.hpp</a>>
+ #include <<a href="../headers/iteration/iterate.html">boost/preprocessor/iteration/iterate.hpp</a>>
+
+ namespace sample {
+
+ #define <a href="iteration_params_x.html">BOOST_PP_ITERATION_PARAMS_1</a> (3, (1, 5, "sample.cpp"))
+ #include <a href="iterate.html">BOOST_PP_ITERATE</a>()
+
+ } // sample
+
+ int main(void) {
+ return 0;
+ }
+
+#else
+
+ #line <a href="line.html">BOOST_PP_LINE</a>(1, sample.cpp)
+
+ int <a href="cat.html">BOOST_PP_CAT</a>(x, <a href="iteration.html">BOOST_PP_ITERATION</a>())); // extra parenthesis
+
+ struct <a href="cat.html">BOOST_PP_CAT</a>(s, <a href="dec.html">BOOST_PP_DEC</a>(<a href="iteration.html">BOOST_PP_ITERATION</a>()) {
+ // missing a parenthesis
+ // ...
+ };
+
+#endif
+</pre></div>
+ <hr size="1">
+ <div style="margin-left: 0px;">
+ <i>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
+ </br><i>© Copyright Paul Mensonides 2002</i>
+ </div>
+ <div style="margin-left: 0px;">
+ <p><small>Distributed under the Boost Software License, Version 1.0. (See
+ accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
+ copy at <a href=
+ "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
+ </div>
+</body>
+</html>