|
| | Variant_RawVisitorHelper (VISITOR *visitor) |
| |
| template<class ARGUMENT_TYPE > |
| RESULT_TYPE | operator() (ARGUMENT_TYPE &argument) |
| |
| template<class ARGUMENT_TYPE > |
| RESULT_TYPE | operator() (const ARGUMENT_TYPE &argument) |
| |
| template<class ARGUMENT_TYPE > |
| RESULT_TYPE | operator() (ARGUMENT_TYPE &argument) const |
| |
| template<class ARGUMENT_TYPE > |
| RESULT_TYPE | operator() (const ARGUMENT_TYPE &argument) const |
| |
| RESULT_TYPE | operator() (bslmf::Nil) const |
| | Do not call. The behavior of this method is undefined.
|
| |
template<class RESULT_TYPE, class VISITOR>
class bdlb::Variant_RawVisitorHelper< RESULT_TYPE, VISITOR >
This struct provides a helper for implementing Variant::applyRaw that enables applyRaw to support visitor functors that do not provide an overload for operator()(bslmf::Nil). Objects of this type are constructed using a functor of (template parameter) type VISITOR, whose operator() returns the (template parameter) type RESULT_TYPE. A Variant_RawVisitorHelper wraps a functor of type VISITOR and provides an implementation of operator()(bslmf::Nil) that performs a BSLS_ASSERT_OPT(false). Note that this overload is needed to enable compilation (specifically, to instantiate doApply and doApplyR), but is never invoked by any code path at runtime.
See bdlb_variant