Go to the documentation of this file.
4 #ifndef LEXY_CALLBACK_OBJECT_HPP_INCLUDED
5 #define LEXY_CALLBACK_OBJECT_HPP_INCLUDED
11 template <
typename T,
typename... Args>
13 template <
typename T,
typename... Args>
16 template <
typename T,
typename... Args>
37 template <
typename... Args>
41 if constexpr (std::is_constructible_v<T, Args&&...>)
59 template <
typename T,
typename PtrT>
75 template <
typename... Args>
79 if constexpr (std::is_constructible_v<T, Args&&...>)
93 template <
typename T,
typename PtrT = T*>
97 #endif // LEXY_CALLBACK_OBJECT_HPP_INCLUDED
constexpr bool is_detected
decltype(T{LEXY_DECLVAL(Args)...}) _detect_brace_construct
constexpr auto new_
A callback that constructs an object of type T on the heap by forwarding the arguments.
constexpr auto operator()(Args &&... args) const -> std::enable_if_t< _detail::is_constructible< T, Args &&... >, PtrT >
constexpr void operator()() const
constexpr auto operator()(Args &&... args) const -> std::enable_if_t< _detail::is_constructible< T, Args &&... >, T >
constexpr T operator()(T &&t) const
constexpr auto is_constructible
constexpr auto construct
A callback that constructs an object of type T by forwarding the arguments.
constexpr auto is_brace_constructible
#define LEXY_DECLVAL(...)
constexpr PtrT operator()(T &&t) const
constexpr T operator()(const T &t) const
constexpr PtrT operator()(const T &t) const
typename std::enable_if< B, T >::type enable_if_t