23 static std::function<DataStream &(DataStream &_strm)>
failure(std::string
const &_msg);
60 DataStream &operator<<(const std::function<DataStream & (DataStream &)> &F) {
153 _stream._set_err_msg(_msg);
161 namespace DataStream_impl {
162 template<
typename OutType>
164 template<
typename InType>
166 return static_cast<OutType
>(a);
172 template<
typename InType>
174 return static_cast<std::string
>(a);
195 template<
typename InType>
197 return static_cast<double>(a);
208 template<
typename InType>
210 return static_cast<long>(a);
225 template<
typename InType>
227 return static_cast<bool>(a);
245 template<
typename InType>
247 return static_cast<char>(a);
264 template <
typename T,
typename Promoter = DataStream_impl::DataStreamPromoter<T> >
272 m_value = Promoter::promote(val);
277 m_value = Promoter::promote(val);
282 m_value = Promoter::promote(val);
287 m_value = Promoter::promote(val);
292 m_value = Promoter::promote(val);
304 template <
typename T,
typename Promoter = DataStream_impl::DataStreamPromoter<T> >
312 m_vector.push_back(Promoter::promote(val));
317 m_vector.push_back(Promoter::promote(val));
322 m_vector.push_back(Promoter::promote(val));
327 m_vector.push_back(Promoter::promote(val));
332 m_vector.push_back(Promoter::promote(val));
346 return (_stream << (
long)i);
351 return (_stream << (
double)f);
356 return (_stream << (
long)i);
361 return (_stream << (
long)i);
366 DataStream &operator<<(DataStream &_stream, const std::vector<T> &vec) {
367 for(
auto it = vec.cbegin(); it != vec.cend(); ++it) {
375 #include "casm/external/Eigen/Dense"
377 template <
typename Derived>
378 CASM::DataStream &operator<<(CASM::DataStream &_stream, const MatrixBase<Derived> &value) {
379 for(
int i = 0; i < value.rows(); i++) {
380 for(
int j = 0; j < value.cols(); j++) {
381 _stream << value(i, j);
DataStream & operator<<(DataStreamTraits set_bits)
static std::function< DataStream &(DataStream &_strm)> failure(std::string const &_msg)
DataStream & operator<<(double val) override
DataStream & operator<<(long) override
CountDataStream(bool newline_reset=true)
virtual DataStream & operator<<(double)
DataStream & operator<<(long val) override
virtual DataStream & operator<<(char)
std::string const & err_msg() const
void _set_err_msg(std::string const &_msg)
std::ostream & operator<<(std::ostream &_stream, const FormattedPrintable &_formatted)
DataStream & newline() override
virtual DataStream & operator<<(const std::string &)
DataStream & operator<<(char val) override
VectorDataStream(DataStreamTraits _traits=none)
DataStream & operator<<(const std::string &val) override
DataStream & operator<<(double val) override
virtual DataStream & operator<<(long)
DataStream & operator<<(const std::string &) override
DataStream & operator<<(char) override
DataStream & operator<<(DataStream &(*F)(DataStream &))
virtual DataStream & newline()
std::vector< T > m_vector
DataStream & operator<<(double) override
DataStream & operator<<(bool) override
ValueDataStream(DataStreamTraits _traits=none)
DataStream & operator<<(long val) override
DataStream & operator<<(char val) override
static DataStream & endl(DataStream &_strm)
DataStream & operator<<(const std::string &val) override
DataStream & operator<<(bool val) override
virtual DataStream & operator<<(bool)
const std::vector< T > & vector() const
DataStream(DataStreamTraits _traits=none)
DataStream & operator<<(bool val) override