1#ifndef DUNE_FEM_IO_STREAMS_TUPLES_HH
2#define DUNE_FEM_IO_STREAMS_TUPLES_HH
7#include <dune/common/hybridutilities.hh>
8#include <dune/fem/io/streams/streams.hh>
20 template <
class StreamTraits>
21 class OutStreamInterface;
22 template <
class StreamTraits>
23 class InStreamInterface;
30 template<
class StreamTraits >
31 inline InStreamInterface< StreamTraits > &
32 operator>> ( InStreamInterface< StreamTraits > &in, std::tuple<> &tuple )
37 template<
class StreamTraits,
class... Args >
38 inline InStreamInterface< StreamTraits > &
39 operator>> ( InStreamInterface< StreamTraits > &in, std::tuple< Args... > &tuple )
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 ); } );
std::istream & operator>>(std::istream &stream, std::tuple< Ts... > &t)
Read a std::tuple.
Definition: streamoperators.hh:43
constexpr void forEach(Range &&range, F &&f)
Range based for loop.
Definition: hybridutilities.hh:257
Dune namespace.
Definition: alignedallocator.hh:13