#ifndef PYTHONIC_INCLUDE_NUMPY_VSTACK_HPP #define PYTHONIC_INCLUDE_NUMPY_VSTACK_HPP #include PYTHONIC_NS_BEGIN namespace numpy { namespace impl { template using vstack_helper = decltype(concatenate(std::declval(), 0)); } template auto vstack(ArraySequence &&seq) -> typename std::enable_if<(impl::vstack_helper::value > 1), impl::vstack_helper>::type; // according to the numpy.vstack doc: // Equivalent to ``np.concatenate(tup, axis=0)`` if `tup` contains arrays // that // are at least 2-dimensional. // // the enable if is there to match this behavior template auto vstack(ArraySequence &&seq) -> typename std::enable_if< (impl::vstack_helper::value == 1), decltype(std::declval>().reshape( std::declval>()))>::type; DEFINE_FUNCTOR(pythonic::numpy, vstack); } PYTHONIC_NS_END #endif