#pragma once #include namespace at::native { struct TupleInfoCPU { template using tuple = std::tuple; template static constexpr auto tie(Types&... args) noexcept { return std::tie(args...); } }; template using CompositeRandomAccessorCPU = CompositeRandomAccessor; template void swap( references_holder rh1, references_holder rh2 ) { return std::swap(rh1.data(), rh2.data()); } template auto get(references_holder rh) -> decltype(std::get(rh.data())) { return std::get(rh.data()); } } // namespace at::native