26 #ifndef TILEDARRAY_TILE_INTERFACE_CLONE_H__INCLUDED 27 #define TILEDARRAY_TILE_INTERFACE_CLONE_H__INCLUDED 29 #include "../type_traits.h" 39 template <
typename Arg>
40 inline auto clone(
const Arg& arg) {
44 namespace tile_interface {
57 template <
typename Arg,
typename Enabler =
void>
68 template <
typename Arg>
70 typename
std::enable_if<
71 TiledArray::detail::is_type<result_of_clone_t<Arg> >::value
84 template <
typename Result,
typename Arg,
typename Enabler =
void>
103 template <
typename Result,
typename Arg>
105 typename
std::enable_if<
106 ! std::is_same<Result, typename clone_trait<Arg>::type >::value
122 template <
typename Arg>
137 template <
typename Result,
typename Arg>
143 #endif // TILEDARRAY_TILE_INTERFACE_CLONE_H__INCLUDED
DistArray< Tile, Policy > clone(const DistArray< Tile, Policy > &arg)
Create a deep copy of an array.
result_of_clone_t< Arg > type
typename std::decay< decltype(clone(std::declval< T >()))>::type result_of_clone_t
Result result_type
Result tile type.
result_type operator()(const argument_type &arg) const
Arg argument_type
Argument tile type.
Create a deep copy of a tile.