| 15858 | |
| 15859 | template <typename F, typename G> |
| 15860 | inline decltype(auto) property(F&& f, G&& g) { |
| 15861 | typedef lua_bind_traits<meta::unqualified_t<F>> left_traits; |
| 15862 | typedef lua_bind_traits<meta::unqualified_t<G>> right_traits; |
| 15863 | if constexpr (left_traits::free_arity < right_traits::free_arity) { |
| 15864 | return property_wrapper<std::decay_t<F>, std::decay_t<G>>(std::forward<F>(f), std::forward<G>(g)); |
| 15865 | } |
| 15866 | else { |
| 15867 | return property_wrapper<std::decay_t<G>, std::decay_t<F>>(std::forward<G>(g), std::forward<F>(f)); |
| 15868 | } |
| 15869 | } |
| 15870 | |
| 15871 | template <typename F> |
| 15872 | inline decltype(auto) property(F&& f) { |
no test coverage detected