From 24e67db14016371072124fd73a3630e2c731f267 Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Wed, 8 Nov 2017 11:47:44 +0100 Subject: [PATCH] change std::cin to common::Streams::in --- alib2cli/src/builtin/ReadFile.cpp | 5 +++-- alib2common/src/global/GlobalData.cpp | 10 ++++++++++ alib2common/src/global/GlobalData.h | 12 ++++++++++++ alib2raw/src/factory/RawDataFactory.hpp | 2 +- alib2str/src/factory/StringDataFactory.hpp | 2 +- 5 files changed, 27 insertions(+), 4 deletions(-) diff --git a/alib2cli/src/builtin/ReadFile.cpp b/alib2cli/src/builtin/ReadFile.cpp index 2664061efa..b3a93d675c 100644 --- a/alib2cli/src/builtin/ReadFile.cpp +++ b/alib2cli/src/builtin/ReadFile.cpp @@ -9,6 +9,7 @@ #include <registration/AlgoRegistration.hpp> #include <fstream> #include <streambuf> +#include <global/GlobalData.h> namespace cli { @@ -16,8 +17,8 @@ namespace builtin { std::string ReadFile::read ( const std::string & filename ) { if ( filename == "-" ) { - std::cin >> std::noskipws; - return std::string ( ( std::istreambuf_iterator < char > ( std::cin ) ), std::istreambuf_iterator < char > ( ) ); + common::Streams::in >> std::noskipws; + return std::string ( ( std::istreambuf_iterator < char > ( common::Streams::in ) ), std::istreambuf_iterator < char > ( ) ); } else { std::ifstream t ( filename ); if ( ! t.is_open ( ) ) { diff --git a/alib2common/src/global/GlobalData.cpp b/alib2common/src/global/GlobalData.cpp index a96766db36..2c9d72971f 100644 --- a/alib2common/src/global/GlobalData.cpp +++ b/alib2common/src/global/GlobalData.cpp @@ -38,4 +38,14 @@ std::ostream & operator << ( ext::reference_wrapper < std::ostream > & os, std:: return os; } +std::ostream & operator << ( ext::reference_wrapper < std::ostream > & os, std::ios_base & ( * func ) ( std::ios_base & ) ) { + os.get () << func; + return os; +} + +std::istream & operator >> ( ext::reference_wrapper < std::istream > & is, std::ios_base & ( * func ) ( std::ios_base & ) ) { + is.get () >> func; + return is; +} + } /* namespace ext */ diff --git a/alib2common/src/global/GlobalData.h b/alib2common/src/global/GlobalData.h index 1c017db2ba..6e81223596 100644 --- a/alib2common/src/global/GlobalData.h +++ b/alib2common/src/global/GlobalData.h @@ -51,6 +51,18 @@ std::ostream & operator << ( ext::reference_wrapper < std::ostream > & os, T && std::ostream & operator << ( ext::reference_wrapper < std::ostream > & os, std::ostream & ( * func ) ( std::ostream & ) ); +std::ostream & operator << ( ext::reference_wrapper < std::ostream > & os, std::ios_base & ( * func ) ( std::ios_base & ) ); + + + +template < class T > +std::istream & operator >> ( ext::reference_wrapper < std::istream > & is, T & data ) { + is.get ( ) >> data; + return is; +} + +std::istream & operator >> ( ext::reference_wrapper < std::istream > & is, std::ios_base & ( * func ) ( std::ios_base & ) ); + } /* namespace ext */ #endif /* _GLOBAL_DATA_H_ */ diff --git a/alib2raw/src/factory/RawDataFactory.hpp b/alib2raw/src/factory/RawDataFactory.hpp index 6f9c6aa9f0..9c333b18a4 100644 --- a/alib2raw/src/factory/RawDataFactory.hpp +++ b/alib2raw/src/factory/RawDataFactory.hpp @@ -68,7 +68,7 @@ public: public: template < class T > operator T ( ) { - return fromStream ( std::cin ); + return fromStream ( common::Streams::in ); } }; diff --git a/alib2str/src/factory/StringDataFactory.hpp b/alib2str/src/factory/StringDataFactory.hpp index 886077cbcc..e5126e8fcb 100644 --- a/alib2str/src/factory/StringDataFactory.hpp +++ b/alib2str/src/factory/StringDataFactory.hpp @@ -53,7 +53,7 @@ public: public: template < class T > operator T ( ) { - return fromStream ( std::cin ); + return fromStream ( common::Streams::in ); } }; -- GitLab