Alembic
1.8.11
Toggle main menu visibility
Loading...
Searching...
No Matches
OperatorBool.h
1
//-*****************************************************************************
2
//
3
// Copyright (c) 2009-2011,
4
// Sony Pictures Imageworks Inc. and
5
// Industrial Light & Magic, a division of Lucasfilm Entertainment Company Ltd.
6
//
7
// All rights reserved.
8
//
9
// Redistribution and use in source and binary forms, with or without
10
// modification, are permitted provided that the following conditions are
11
// met:
12
// * Redistributions of source code must retain the above copyright
13
// notice, this list of conditions and the following disclaimer.
14
// * Redistributions in binary form must reproduce the above
15
// copyright notice, this list of conditions and the following disclaimer
16
// in the documentation and/or other materials provided with the
17
// distribution.
18
// * Neither the name of Industrial Light & Magic nor the names of
19
// its contributors may be used to endorse or promote products derived
20
// from this software without specific prior written permission.
21
//
22
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33
//
34
//-*****************************************************************************
35
36
#ifndef Alembic_Util_OperatorBool_h
37
#define Alembic_Util_OperatorBool_h
38
39
#include <Alembic/Util/Foundation.h>
40
41
//-*****************************************************************************
42
#define ALEMBIC_OPERATOR_BOOL( PASS_COND ) \
43
void __unspecified_bool_type_fcn() const {} \
44
typedef void (this_type::*unspecified_bool_type)() const; \
45
operator unspecified_bool_type() const \
46
{ \
47
return ( PASS_COND ) ? &this_type::__unspecified_bool_type_fcn : 0; \
48
} \
49
bool operator! () const \
50
{ \
51
return !( PASS_COND ); \
52
}
53
54
55
//-*****************************************************************************
56
#define ALEMBIC_OVERRIDE_OPERATOR_BOOL( PASS_COND ) \
57
operator unspecified_bool_type() const \
58
{ \
59
return ( PASS_COND ) ? \
60
&operator_bool_base_type::__unspecified_bool_type_fcn : 0; \
61
} \
62
bool operator! () const \
63
{ \
64
return !( PASS_COND ); \
65
}
66
67
68
#endif
69
Util
OperatorBool.h
Generated by
1.18.0