1#ifndef DUNE_FEM_IO_STREAMS_TUPLES_HH
2#define DUNE_FEM_IO_STREAMS_TUPLES_HH
7#include <dune/common/hybridutilities.hh>
20 template <
class StreamTraits>
21 class OutStreamInterface;
22 template <
class StreamTraits>
23 class InStreamInterface;
30 template<
class StreamTraits >
31 inline InStreamInterface< StreamTraits > &
37 template<
class StreamTraits,
class... Args >
38 inline InStreamInterface< StreamTraits > &
42 Hybrid::forEach ( std::make_index_sequence<
sizeof...( Args ) >{}, [ & ](
auto i ){
in >> std::get< i >( tuple ); } );
51 template<
class StreamTraits >
52 inline OutStreamInterface< StreamTraits > &
53 operator<< ( OutStreamInterface< StreamTraits > &
out,
const std::tuple<> &tuple )
58 template<
class StreamTraits,
class... Args >
59 inline OutStreamInterface< StreamTraits > &
60 operator<< ( OutStreamInterface< StreamTraits > &
out,
const std::tuple< Args... > &tuple )
62 Hybrid::forEach ( std::make_index_sequence<
sizeof...( Args ) >{}, [ & ](
auto i ){ out << std::get< i >( tuple ); } );
Definition: bindguard.hh:11
OutStreamInterface< StreamTraits > & operator<<(OutStreamInterface< StreamTraits > &out, const DiscreteFunctionInterface< Impl > &df)
write a discrete function into an output stream
Definition: discretefunction_inline.hh:396
InStreamInterface< StreamTraits > & operator>>(InStreamInterface< StreamTraits > &in, DiscreteFunctionInterface< Impl > &df)
read a discrete function from an input stream
Definition: discretefunction_inline.hh:416
static void forEach(IndexRange< T, sz > range, F &&f)
Definition: hybrid.hh:129
abstract interface for an input stream
Definition: streams.hh:179