library of assembled shared sources

http://lass.cocamware.com

Extended_io

extra insertors and extractors. More...


Data Structures

struct  lass::stde::impl::sequence_traits
struct  lass::stde::impl::set_traits
struct  lass::stde::impl::value_traits
struct  lass::stde::impl::pair_traits

Functions

template<typename Char , typename Traits >
void lass::stde::impl::eat_whitespace (std::basic_istream< Char, Traits > &stream)
template<typename Iterator , typename Char , typename Traits >
std::basic_ostream< Char,
Traits > & 
lass::stde::impl::print_sequence (std::basic_ostream< Char, Traits > &stream, Iterator begin, Iterator end, const Char *opener, const Char *seperator, const Char *closer)
template<typename Char , typename Traits , typename Iterator >
std::basic_ostream< Char,
Traits > & 
lass::stde::impl::print_map (std::basic_ostream< Char, Traits > &stream, Iterator begin, Iterator end, const Char *opener, const Char *seperator_1, const Char *seperator_2, const Char *closer)
template<typename ContainerTraits , typename DataTraits , typename T , typename Char , typename Traits , typename Container >
std::basic_istream< Char,
Traits > & 
lass::stde::impl::read_container (std::basic_istream< Char, Traits > &stream, Container &container, Char opener, Char inter_seperator, Char intra_seperator, Char closer)
template<typename T1 , typename T2 , typename Char , typename Traits >
std::basic_ostream< Char,
Traits > & 
std::operator<< (std::basic_ostream< Char, Traits > &stream, const std::pair< T1, T2 > &x)
template<typename T , typename Alloc , typename Char , typename Traits >
std::basic_ostream< Char,
Traits > & 
std::operator<< (std::basic_ostream< Char, Traits > &stream, const std::vector< T, Alloc > &container)
template<typename T , typename Alloc , typename Char , typename Traits >
std::basic_ostream< Char,
Traits > & 
std::operator<< (std::basic_ostream< Char, Traits > &stream, const std::list< T, Alloc > &container)
template<typename T , typename Alloc , typename Char , typename Traits >
std::basic_ostream< Char,
Traits > & 
std::operator<< (std::basic_ostream< Char, Traits > &stream, const std::deque< T, Alloc > &container)
template<typename Key , typename Data , typename Comp , typename Alloc , typename Char , typename Traits >
std::basic_ostream< Char,
Traits > & 
std::operator<< (std::basic_ostream< Char, Traits > &stream, const std::map< Key, Data, Comp, Alloc > &container)
template<typename Key , typename Data , typename Comp , typename Alloc , typename Char , typename Traits >
std::basic_ostream< Char,
Traits > & 
std::operator<< (std::basic_ostream< Char, Traits > &stream, const std::multimap< Key, Data, Comp, Alloc > &container)
template<typename Key , typename Comp , typename Alloc , typename Char , typename Traits >
std::basic_ostream< Char,
Traits > & 
std::operator<< (std::basic_ostream< Char, Traits > &stream, const std::set< Key, Comp, Alloc > &container)
template<typename Key , typename Comp , typename Alloc , typename Char , typename Traits >
std::basic_ostream< Char,
Traits > & 
std::operator<< (std::basic_ostream< Char, Traits > &stream, const std::multiset< Key, Comp, Alloc > &container)
template<typename Char , typename Traits , typename T1 , typename T2 >
std::basic_istream< Char,
Traits > & 
std::operator>> (std::basic_istream< Char, Traits > &stream, std::pair< T1, T2 > &x)
template<typename Char , typename Traits , typename T , typename Alloc >
std::basic_istream< Char,
Traits > & 
std::operator>> (std::basic_istream< Char, Traits > &stream, std::vector< T, Alloc > &container)
template<typename Char , typename Traits , typename T , typename Alloc >
std::basic_istream< Char,
Traits > & 
std::operator>> (std::basic_istream< Char, Traits > &stream, std::list< T, Alloc > &container)
template<typename Char , typename Traits , typename T , typename Alloc >
std::basic_istream< Char,
Traits > & 
std::operator>> (std::basic_istream< Char, Traits > &stream, std::deque< T, Alloc > &container)
template<typename Char , typename Traits , typename Key , typename Data , typename Comp , typename Alloc >
std::basic_istream< Char,
Traits > & 
std::operator>> (std::basic_istream< Char, Traits > &stream, std::map< Key, Data, Comp, Alloc > &container)
template<typename Char , typename Traits , typename Key , typename Data , typename Comp , typename Alloc >
std::basic_istream< Char,
Traits > & 
std::operator>> (std::basic_istream< Char, Traits > &stream, std::multimap< Key, Data, Comp, Alloc > &container)
template<typename Char , typename Traits , typename Key , typename Comp , typename Alloc >
std::basic_istream< Char,
Traits > & 
std::operator>> (std::basic_istream< Char, Traits > &stream, std::set< Key, Comp, Alloc > &container)
template<typename Char , typename Traits , typename Key , typename Comp , typename Alloc >
std::basic_istream< Char,
Traits > & 
std::operator>> (std::basic_istream< Char, Traits > &stream, std::multiset< Key, Comp, Alloc > &container)


Detailed Description

extra insertors and extractors.

Author:
Bram de Greve [BdG]
ExtendedIo groups additional stream operators for std::pair and standard containers like std::vector, std::list, ... By including this header, it will possible to output these types to a stream, just like a regular float.

Currently, the containers only have output operators, only std::pair has both the output and input operator. This will probably change in the future when there's a need for it.

The supported standard containers are std::vector, std::list, std::deque, std::map, std::multimap, std::set, std::multiset.

STLport specific: in case std::slist is detected as included, it is supported as well.

  std::pair<int, std::string> a(5, "hello");
  std::cout << a; // (5, hello)
  std::cin >> a;

  std::vector<int> b;
  b.push_back(1);
  b.push_back(2);
  b.push_back(3);
  std::cout << b; // [1, 2, 3]

  std::map<std::string, int> c;
  c["foo"] = 1;
  c["bar"] = 2;
  c["spam"] = 3;
  c << map; // {bar: 2, foo: 1, spam: 3}

  std::set<std::string> d;
  d.insert("foo");
  d.insert("bar");
  d.insert("spam");
  stream << d; // {bar, foo, spam}

Note:
we need to inject all this stuff in the std namespace for the look up thingies to work.

Function Documentation

template<typename Char , typename Traits >
void lass::stde::impl::eat_whitespace ( std::basic_istream< Char, Traits > &  stream  )  [inline]

template<typename Iterator , typename Char , typename Traits >
std::basic_ostream<Char, Traits>& lass::stde::impl::print_sequence ( std::basic_ostream< Char, Traits > &  stream,
Iterator  begin,
Iterator  end,
const Char *  opener,
const Char *  seperator,
const Char *  closer 
) [inline]

template<typename Char , typename Traits , typename Iterator >
std::basic_ostream<Char, Traits>& lass::stde::impl::print_map ( std::basic_ostream< Char, Traits > &  stream,
Iterator  begin,
Iterator  end,
const Char *  opener,
const Char *  seperator_1,
const Char *  seperator_2,
const Char *  closer 
) [inline]

Definition at line 211 of file extended_io.inl.

References LASS_ENFORCE_STREAM.

template<typename ContainerTraits , typename DataTraits , typename T , typename Char , typename Traits , typename Container >
std::basic_istream<Char, Traits>& lass::stde::impl::read_container ( std::basic_istream< Char, Traits > &  stream,
Container &  container,
Char  opener,
Char  inter_seperator,
Char  intra_seperator,
Char  closer 
) [inline]

Definition at line 243 of file extended_io.inl.

References lass::stde::impl::eat_whitespace(), and lass::stde::T.

Referenced by std::operator>>().

template<typename T1 , typename T2 , typename Char , typename Traits >
std::basic_ostream< Char, Traits > & std::operator<< ( std::basic_ostream< Char, Traits > &  stream,
const std::pair< T1, T2 > &  x 
) [inline]

Definition at line 320 of file extended_io.inl.

References LASS_ENFORCE_STREAM.

template<typename T , typename Alloc , typename Char , typename Traits >
std::basic_ostream< Char, Traits > & std::operator<< ( std::basic_ostream< Char, Traits > &  stream,
const std::vector< T, Alloc > &  x 
) [inline]

Definition at line 334 of file extended_io.inl.

References lass::stde::impl::print_sequence().

template<typename T , typename Alloc , typename Char , typename Traits >
std::basic_ostream< Char, Traits > & std::operator<< ( std::basic_ostream< Char, Traits > &  stream,
const std::list< T, Alloc > &  x 
) [inline]

Definition at line 344 of file extended_io.inl.

References lass::stde::impl::print_sequence().

template<typename T , typename Alloc , typename Char , typename Traits >
std::basic_ostream< Char, Traits > & std::operator<< ( std::basic_ostream< Char, Traits > &  stream,
const std::deque< T, Alloc > &  x 
) [inline]

Definition at line 354 of file extended_io.inl.

References lass::stde::impl::print_sequence().

template<typename Key , typename Data , typename Comp , typename Alloc , typename Char , typename Traits >
std::basic_ostream< Char, Traits > & std::operator<< ( std::basic_ostream< Char, Traits > &  stream,
const std::map< Key, Data, Comp, Alloc > &  x 
) [inline]

Definition at line 364 of file extended_io.inl.

template<typename Key , typename Data , typename Comp , typename Alloc , typename Char , typename Traits >
std::basic_ostream< Char, Traits > & std::operator<< ( std::basic_ostream< Char, Traits > &  stream,
const std::multimap< Key, Data, Comp, Alloc > &  x 
) [inline]

Definition at line 375 of file extended_io.inl.

template<typename Key , typename Comp , typename Alloc , typename Char , typename Traits >
std::basic_ostream< Char, Traits > & std::operator<< ( std::basic_ostream< Char, Traits > &  stream,
const std::set< Key, Comp, Alloc > &  x 
) [inline]

Definition at line 386 of file extended_io.inl.

References lass::stde::impl::print_sequence().

template<typename Key , typename Comp , typename Alloc , typename Char , typename Traits >
std::basic_ostream< Char, Traits > & std::operator<< ( std::basic_ostream< Char, Traits > &  stream,
const std::multiset< Key, Comp, Alloc > &  x 
) [inline]

Definition at line 397 of file extended_io.inl.

References lass::stde::impl::print_sequence().

template<typename Char , typename Traits , typename T1 , typename T2 >
std::basic_istream<Char, Traits>& std::operator>> ( std::basic_istream< Char, Traits > &  stream,
std::pair< T1, T2 > &  x 
) [inline]

Definition at line 412 of file extended_io.inl.

template<typename Char , typename Traits , typename T , typename Alloc >
std::basic_istream<Char, Traits>& std::operator>> ( std::basic_istream< Char, Traits > &  stream,
std::vector< T, Alloc > &  container 
) [inline]

Definition at line 448 of file extended_io.inl.

References lass::stde::impl::read_container(), and lass::stde::T.

template<typename Char , typename Traits , typename T , typename Alloc >
std::basic_istream<Char, Traits>& std::operator>> ( std::basic_istream< Char, Traits > &  stream,
std::list< T, Alloc > &  container 
) [inline]

Definition at line 463 of file extended_io.inl.

References lass::stde::impl::read_container(), and lass::stde::T.

template<typename Char , typename Traits , typename T , typename Alloc >
std::basic_istream<Char, Traits>& std::operator>> ( std::basic_istream< Char, Traits > &  stream,
std::deque< T, Alloc > &  container 
) [inline]

Definition at line 478 of file extended_io.inl.

References lass::stde::impl::read_container(), and lass::stde::T.

template<typename Char , typename Traits , typename Key , typename Data , typename Comp , typename Alloc >
std::basic_istream<Char, Traits>& std::operator>> ( std::basic_istream< Char, Traits > &  stream,
std::map< Key, Data, Comp, Alloc > &  container 
) [inline]

Definition at line 493 of file extended_io.inl.

References lass::stde::impl::read_container().

template<typename Char , typename Traits , typename Key , typename Data , typename Comp , typename Alloc >
std::basic_istream<Char, Traits>& std::operator>> ( std::basic_istream< Char, Traits > &  stream,
std::multimap< Key, Data, Comp, Alloc > &  container 
) [inline]

Definition at line 508 of file extended_io.inl.

References lass::stde::impl::read_container().

template<typename Char , typename Traits , typename Key , typename Comp , typename Alloc >
std::basic_istream<Char, Traits>& std::operator>> ( std::basic_istream< Char, Traits > &  stream,
std::set< Key, Comp, Alloc > &  container 
) [inline]

Definition at line 524 of file extended_io.inl.

References lass::stde::impl::read_container().

template<typename Char , typename Traits , typename Key , typename Comp , typename Alloc >
std::basic_istream<Char, Traits>& std::operator>> ( std::basic_istream< Char, Traits > &  stream,
std::multiset< Key, Comp, Alloc > &  container 
) [inline]

Definition at line 539 of file extended_io.inl.

References lass::stde::impl::read_container().


Generated on Mon Nov 10 14:22:06 2008 for Library of Assembled Shared Sources by doxygen 1.5.7.1
SourceForge.net Logo