List of all members.
Detailed Description
template<class t_MEMOF_CLASS, class t_ARG_TYPE>
struct bslmf::InvokeResult_MemPtrArgQualifiers< t_MEMOF_CLASS, t_ARG_TYPE, false >
This metafunction determines which cv qualifiers and reference qualifiers should be propagated from the first argument of invoke_result
.
This specialization is instantiated when t_ARG_TYPE
is not derived from t_MEMOF_CLASS
and is assumed to be a pointer or smart pointer type. If type A
is the result of dereferencing an object of type t_ARG_TYPE
, then the constant k_IS_LVALUE
is true iff A
is an lvalue reference; the constant k_IS_CONST
is true iff A
is a const-qualified reference; and the constant k_IS_VOLATILE
is true iff A
is a volatile-qualified reference.
See Component bslmf_invokeresult
Member Enumeration Documentation
template<class t_MEMOF_CLASS , class t_ARG_TYPE >
- Enumerator:
k_IS_LVALUE |
In C++03, cv qualifiers are discarded from rvalues.
|
k_IS_CONST |
|
k_IS_VOLATILE |
|
Member Function Documentation
template<class t_SOME_TYPE >
static t_SOME_TYPE bslmf::InvokeResult_ImpUtils::myDeclval |
( |
|
) |
[static, inherited] |
Return an object of the specified t_SOME_TYPE
template parameter type. This function is declared but not defined and is intended to be called in an unevaluated context. Because there is no definition, the available constructors for t_SOME_TYPE
are irrelevant.
static bslmf::Tag<false> bslmf::InvokeResult_ImpUtils::checkLvalue |
( |
AnyRvalue |
, |
|
|
|
... | |
|
) |
| | [static, inherited] |
(Declared but not defined) Return bslmf::Tag<false>()
if the first argument is an rvalue and bslmf::Tag<true>()
if it is lvalue. In actual use, the second argument is always a literal int
, which causes the second overload to be preferred in case of ambiguity.
template<class t_TP >
static bslmf::Tag<false> bslmf::InvokeResult_ImpUtils::checkConst |
( |
t_TP & |
|
) |
[static, inherited] |
template<class t_TP >
static bslmf::Tag<true> bslmf::InvokeResult_ImpUtils::checkConst |
( |
const t_TP & |
|
) |
[static, inherited] |
(Declared but not defined) Return bslmf::Tag<true>()
if the argument is const
-qualified and bslmf::Tag<false>()
otherwise.
template<class t_TP >
static bslmf::Tag<false> bslmf::InvokeResult_ImpUtils::checkVolatile |
( |
t_TP & |
|
) |
[static, inherited] |
template<class t_TP >
static bslmf::Tag<false> bslmf::InvokeResult_ImpUtils::checkVolatile |
( |
const t_TP & |
|
) |
[static, inherited] |
template<class t_TP >
static bslmf::Tag<true> bslmf::InvokeResult_ImpUtils::checkVolatile |
( |
volatile t_TP & |
|
) |
[static, inherited] |
template<class t_TP >
static bslmf::Tag<true> bslmf::InvokeResult_ImpUtils::checkVolatile |
( |
const volatile t_TP & |
|
) |
[static, inherited] |
(Declared but not defined) Return bslmf::Tag<true>()
if the argument is volatile
-qualified and bslmf::Tag<false>()
otherwise. Note that if t_TP
is both const- and volatile-qualified, it will not match volatile t_TP&
, hence the need for the const overloads.
template<class t_TP >
static t_TP& bslmf::InvokeResult_ImpUtils::uncv |
( |
const t_TP & |
|
) |
[static, inherited] |
template<class t_TP >
static t_TP& bslmf::InvokeResult_ImpUtils::uncv |
( |
const volatile t_TP & |
|
) |
[static, inherited] |
(Declared but not defined) Return the argument, with cv-qualifiers removed.
template<class t_TP >
static t_TP& bslmf::InvokeResult_ImpUtils::unpoint |
( |
t_TP & |
|
) |
[static, inherited] |
template<class t_TP >
static const t_TP& bslmf::InvokeResult_ImpUtils::unpoint |
( |
const t_TP & |
|
) |
[static, inherited] |
If the argument type t_TP
is pointer to type X
, where X
is not cv-'void', return a reference to X
; otherwise return a reference to t_TP
. Note that these functions are declared but not defined and are intended to be called only in an unevaluated context.
The documentation for this struct was generated from the following file: