]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | [/ |
2 | (C) Copyright Edward Diener 2013 | |
3 | Distributed under the Boost Software License, Version 1.0. | |
4 | (See accompanying file LICENSE_1_0.txt or copy at | |
5 | http://www.boost.org/LICENSE_1_0.txt). | |
6 | ] | |
7 | ||
8 | [section:tti_enclosing_type Enclosing Type] | |
9 | ||
10 | The enclosing type you introspect with TTI must be a valid type | |
11 | at the point in which you invoke the macro metafunction. If it is | |
12 | not a valid type at that point you will receive a compiler error. | |
13 | ||
14 | If the enclosing type is a valid type but is not a class type you | |
15 | will not receive a compiler error, but the result of the introspection | |
16 | will always return 'false' or, in the case of the metafunction generated | |
17 | by BOOST_TTI_MEMBER_TYPE, will always return the marker type. | |
18 | ||
19 | When using the macro metafunctions generated by BOOST_TTI_HAS_MEMBER_DATA | |
20 | and BOOST_TTI_HAS_MEMBER_FUNCTION the first template parameter may be an | |
21 | enclosing type or a pointer to member data or member function respectively. | |
22 | In each of these cases TTI can distinguish between the two possibilities and | |
23 | only if the first template parameter is an enclosing type, once again if it is | |
24 | a valid type but not a class type you will not receive a compiler error but | |
25 | the result of the introspection will return 'false'. | |
26 | ||
27 | [endsect] |