1
2// (C) Copyright Edward Diener 2011-2015
3// Use, modification and distribution are subject to the Boost Software License,
4// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
5// http://www.boost.org/LICENSE_1_0.txt).
6
7#if !defined(BOOST_VMD_IS_UNARY_HPP)
8#define BOOST_VMD_IS_UNARY_HPP
9
10#include <boost/vmd/detail/setup.hpp>
11
12#if BOOST_PP_VARIADICS
13
14#include <boost/vmd/detail/sequence_arity.hpp>
15
16/*
17
18 The succeeding comments in this file are in doxygen format.
19
20*/
21
22/** \file
23*/
24
25/** \def BOOST_VMD_IS_UNARY(sequence)
26
27 \brief Determines if the sequence has only a single element, referred to as a single-element sequence.
28
29 sequence = a VMD sequence
30
31 returns = 1 if the sequence is a single-element sequence, else returns 0.
32
33 If the size of a sequence is known it is faster comparing that size to be equal
34 to one to find out if the sequence is single-element. But if the size of the
35 sequence is not known it is faster calling this macro than getting the size and
36 doing the previously mentioned comparison in order to determine if the sequence
37 is single-element or not.
38
39*/
40
41#define BOOST_VMD_IS_UNARY(sequence) \
42 BOOST_VMD_DETAIL_IS_UNARY(sequence) \
43/**/
44
45/** \def BOOST_VMD_IS_UNARY_D(d,sequence)
46
47 \brief Determines if the sequence has only a single element, referred to as a single-element sequence. Re-entrant version.
48
49 d = The next available BOOST_PP_WHILE iteration.
50 sequence = a sequence
51
52 returns = 1 if the sequence is a single-element sequence, else returns 0.
53
54 If the size of a sequence is known it is faster comparing that size to be equal
55 to one to find out if the sequence is single-element. But if the size of the
56 sequence is not known it is faster calling this macro than getting the size and
57 doing the previously mentioned comparison in order to determine if the sequence
58 is single-element or not.
59
60*/
61
62#define BOOST_VMD_IS_UNARY_D(d,sequence) \
63 BOOST_VMD_DETAIL_IS_UNARY_D(d,sequence) \
64/**/
65
66#endif /* BOOST_PP_VARIADICS */
67#endif /* BOOST_VMD_IS_UNARY_HPP */
68

source code of boost/boost/vmd/is_unary.hpp