boost/libs/vmd/doc/html/BOOST_VM_idm45140929486928.html
2021-10-05 21:37:46 +02:00

82 lines
9.2 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Macro BOOST_VMD_ASSERT_IS_IDENTIFIER_D</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="index.html" title="Chapter 1. The Variadic Macro Data Library 1.10">
<link rel="up" href="header/boost/vmd/assert_is_identifier_hpp.html" title="Header &lt;boost/vmd/assert_is_identifier.hpp&gt;">
<link rel="prev" href="BOOST_VM_idm45140917067232.html" title="Macro BOOST_VMD_ASSERT_IS_IDENTIFIER">
<link rel="next" href="header/boost/vmd/assert_is_list_hpp.html" title="Header &lt;boost/vmd/assert_is_list.hpp&gt;">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="BOOST_VM_idm45140917067232.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="header/boost/vmd/assert_is_identifier_hpp.html"><img src="../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="header/boost/vmd/assert_is_list_hpp.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="refentry">
<a name="BOOST_VM_idm45140929486928"></a><div class="titlepage"></div>
<div class="refnamediv">
<h2><span class="refentrytitle">Macro BOOST_VMD_ASSERT_IS_IDENTIFIER_D</span></h2>
<p>BOOST_VMD_ASSERT_IS_IDENTIFIER_D — Asserts that the sequence is an identifier. Re-entrant version. </p>
</div>
<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: &lt;<a class="link" href="header/boost/vmd/assert_is_identifier_hpp.html" title="Header &lt;boost/vmd/assert_is_identifier.hpp&gt;">boost/vmd/assert_is_identifier.hpp</a>&gt;
</span>BOOST_VMD_ASSERT_IS_IDENTIFIER_D(d, ...)</pre></div>
<div class="refsect1">
<a name="idm45711066414352"></a><h2>Description</h2>
<p>The macro checks that the sequence is an identifier. If it is not an identifier, it forces a compiler error.</p>
<p>The macro normally checks for an identifier only in debug mode. However an end-user can force the macro to check or not check by defining the macro BOOST_VMD_ASSERT_DATA to 1 or 0 respectively.</p>
<p>d = The next available BOOST_PP_WHILE iteration. <br>
... = variadic parameters</p>
<p>The variadic parameters are:</p>
<p>sequence = A sequence to test as an identifier. <br>
ids (optional) = The data may take one of two forms: it is either one or more single identifiers or a single Boost PP tuple of identifiers.</p>
<pre class="programlisting"><span class="identifier">returns</span> <span class="special">=</span> <span class="identifier">Normally</span> <span class="identifier">the</span> <span class="identifier">macro</span> <span class="identifier">returns</span> <span class="identifier">nothing</span><span class="special">.</span>
<span class="identifier">If</span> <span class="identifier">the</span> <span class="identifier">sequence</span> <span class="identifier">is</span> <span class="identifier">an</span> <span class="identifier">identifier</span><span class="special">,</span> <span class="identifier">nothing</span> <span class="identifier">is</span>
<span class="identifier">output</span><span class="special">.</span> <span class="identifier">If</span> <span class="identifier">optional</span> <span class="identifier">ids</span> <span class="identifier">are</span> <span class="identifier">specified</span><span class="special">,</span> <span class="keyword">for</span> <span class="identifier">the</span>
<span class="identifier">sequence</span> <span class="identifier">to</span> <span class="identifier">be</span> <span class="identifier">an</span> <span class="identifier">identifier</span> <span class="identifier">it</span> <span class="identifier">must</span> <span class="identifier">be</span> <span class="identifier">an</span>
<span class="identifier">identifier</span> <span class="identifier">that</span> <span class="identifier">matches</span> <span class="identifier">one</span> <span class="identifier">of</span> <span class="identifier">the</span> <span class="identifier">optional</span>
<span class="identifier">ids</span><span class="special">.</span>
<span class="identifier">For</span> <span class="identifier">VC</span><span class="special">++</span><span class="special">,</span> <span class="identifier">because</span> <span class="identifier">there</span> <span class="identifier">is</span> <span class="identifier">no</span> <span class="identifier">sure</span> <span class="identifier">way</span> <span class="identifier">of</span> <span class="identifier">forcing</span>
<span class="identifier">a</span> <span class="identifier">compiler</span> <span class="identifier">error</span> <span class="identifier">from</span> <span class="identifier">within</span> <span class="identifier">a</span> <span class="identifier">macro</span> <span class="identifier">without</span> <span class="identifier">producing</span>
<span class="identifier">output</span><span class="special">,</span> <span class="keyword">if</span> <span class="identifier">the</span> <span class="identifier">sequence</span> <span class="identifier">is</span> <span class="identifier">not</span> <span class="identifier">an</span> <span class="identifier">identifier</span> <span class="identifier">the</span>
<span class="identifier">macro</span> <span class="identifier">forces</span> <span class="identifier">a</span> <span class="identifier">compiler</span> <span class="identifier">error</span> <span class="identifier">by</span> <span class="identifier">outputting</span> <span class="identifier">invalid</span> <span class="identifier">C</span><span class="special">++</span><span class="special">.</span>
<span class="identifier">For</span> <span class="identifier">all</span> <span class="identifier">other</span> <span class="identifier">compilers</span> <span class="identifier">a</span> <span class="identifier">compiler</span> <span class="identifier">error</span> <span class="identifier">is</span> <span class="identifier">forced</span>
<span class="identifier">without</span> <span class="identifier">producing</span> <span class="identifier">output</span> <span class="keyword">if</span> <span class="identifier">the</span> <span class="identifier">sequence</span> <span class="identifier">is</span> <span class="identifier">not</span> <span class="identifier">an</span>
<span class="identifier">identifier</span><span class="special">.</span>
</pre>
<p>Identifiers are registered in VMD with:</p>
<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_VMD_REG_XXX</span> <span class="special">(</span><span class="identifier">XXX</span><span class="special">)</span> <span class="identifier">where</span> <span class="identifier">XXX</span> <span class="identifier">is</span> <span class="identifier">a</span> <span class="identifier">v</span><span class="special">-</span><span class="identifier">identifier</span><span class="special">.</span>
</pre>
<p>The identifier must be registered to be found.</p>
<p>Identifiers are pre-detected in VMD with:</p>
<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_VMD_DETECT_XXX_XXX</span> <span class="identifier">where</span> <span class="identifier">XXX</span> <span class="identifier">is</span> <span class="identifier">an</span> <span class="identifier">identifier</span><span class="special">.</span>
</pre>
<p>If you specify optional ids and have not specified the detection of an optional id, that id will never match an identifier. </p>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2010-2017 Tropic Software
East Inc</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="BOOST_VM_idm45140917067232.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="header/boost/vmd/assert_is_identifier_hpp.html"><img src="../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="header/boost/vmd/assert_is_list_hpp.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>