folly::poly_call

/////////////////////////////////////////////////////////////////////////////

Synopses

Declared in <folly/Poly.h>

template<
    std::size_t N,
    class I,
    typename... As>
[[noreturn]]
/* implementation-defined */
poly_call(
    /* implementation-defined */ const&,
    As&&...);
» more...

/////////////////////////////////////////////////////////////////////////////

template<
    std::size_t N,
    typename This,
    typename... As>
decltype(detail::PolyAccess::call<N>(
        static_cast<This&&>(_this), static_cast<As&&>(as)...))
poly_call(
    This&& _this,
    As&&... as);
» more...
template<
    std::size_t N,
    class I,
    class Tail,
    typename... As>
decltype(auto)
poly_call(
    /* implementation-defined */& _this,
    As&&... as);
» more...
template<
    std::size_t N,
    class I,
    class Tail,
    typename... As>
decltype(auto)
poly_call(
    /* implementation-defined */ const& _this,
    As&&... as);
» more...
template<
    std::size_t N,
    class I,
    class Poly,
    typename... As>
requires detail::IsPoly<Poly>::value
decltype(poly_call<N, I>(
    static_cast<Poly&&>(_this).get(), static_cast<As&&>(as)...))
poly_call(
    Poly&& _this,
    As&&... as);
» more...
template<
    std::size_t N,
    class I,
    class Tail,
    typename... As>
decltype(auto)
poly_call(
    /* implementation-defined */&& _this,
    As&&... as);
» more...

Return Value

The result of invoking the N-th member.

Parameters

NameDescription
_thisThe interface object to dispatch the call on.
asThe arguments forwarded to the member.