prog.cpp: In function 'int main()':
prog.cpp:38:7: error: no match for 'operator>>' (operand types are 'std::istream {aka std::basic_istream<char>}' and 'integer_IO<signed char>')
cin >> intIO(i);
^
In file included from /usr/include/c++/5/iostream:40:0,
from prog.cpp:1:
/usr/include/c++/5/istream:120:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__istream_type& (*)(std::basic_istream<_CharT, _Traits>::__istream_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
operator>>(__istream_type& (*__pf)(__istream_type&))
^
/usr/include/c++/5/istream:120:7: note: no known conversion for argument 1 from 'integer_IO<signed char>' to 'std::basic_istream<char>::__istream_type& (*)(std::basic_istream<char>::__istream_type&) {aka std::basic_istream<char>& (*)(std::basic_istream<char>&)}'
/usr/include/c++/5/istream:124:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__ios_type& (*)(std::basic_istream<_CharT, _Traits>::__ios_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>; std::basic_istream<_CharT, _Traits>::__ios_type = std::basic_ios<char>]
operator>>(__ios_type& (*__pf)(__ios_type&))
^
/usr/include/c++/5/istream:124:7: note: no known conversion for argument 1 from 'integer_IO<signed char>' to 'std::basic_istream<char>::__ios_type& (*)(std::basic_istream<char>::__ios_type&) {aka std::basic_ios<char>& (*)(std::basic_ios<char>&)}'
/usr/include/c++/5/istream:131:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::ios_base& (*)(std::ios_base&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
operator>>(ios_base& (*__pf)(ios_base&))
^
/usr/include/c++/5/istream:131:7: note: no known conversion for argument 1 from 'integer_IO<signed char>' to 'std::ios_base& (*)(std::ios_base&)'
/usr/include/c++/5/istream:168:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(bool&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
operator>>(bool& __n)
^
/usr/include/c++/5/istream:168:7: note: no known conversion for argument 1 from 'integer_IO<signed char>' to 'bool&'
/usr/include/c++/5/istream:172:7: note: candidate: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(short int&) [with _CharT = char; _Traits = std::char_traits<char>]
operator>>(short& __n);
^
/usr/include/c++/5/istream:172:7: note: no known conversion for argument 1 from 'integer_IO<signed char>' to 'short int&'
/usr/include/c++/5/istream:175:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(short unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
operator>>(unsigned short& __n)
^
/usr/include/c++/5/istream:175:7: note: no known conversion for argument 1 from 'integer_IO<signed char>' to 'short unsigned int&'
/usr/include/c++/5/istream:179:7: note: candidate: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(int&) [with _CharT = char; _Traits = std::char_traits<char>]
operator>>(int& __n);
^
/usr/include/c++/5/istream:179:7: note: no known conversion for argument 1 from 'integer_IO<signed char>' to 'int&'
/usr/include/c++/5/istream:182:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
operator>>(unsigned int& __n)
^
/usr/include/c++/5/istream:182:7: note: no known conversion for argument 1 from 'integer_IO<signed char>' to 'unsigned int&'
/usr/include/c++/5/istream:186:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
operator>>(long& __n)
^
/usr/include/c++/5/istream:186:7: note: no known conversion for argument 1 from 'integer_IO<signed char>' to 'long int&'
/usr/include/c++/5/istream:190:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
operator>>(unsigned long& __n)
^
/usr/include/c++/5/istream:190:7: note: no known conversion for argument 1 from 'integer_IO<signed char>' to 'long unsigned int&'
/usr/include/c++/5/istream:195:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
operator>>(long long& __n)
^
/usr/include/c++/5/istream:195:7: note: no known conversion for argument 1 from 'integer_IO<signed char>' to 'long long int&'
/usr/include/c++/5/istream:199:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
operator>>(unsigned long long& __n)
^
/usr/include/c++/5/istream:199:7: note: no known conversion for argument 1 from 'integer_IO<signed char>' to 'long long unsigned int&'
/usr/include/c++/5/istream:214:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(float&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
operator>>(float& __f)
^
/usr/include/c++/5/istream:214:7: note: no known conversion for argument 1 from 'integer_IO<signed char>' to 'float&'
/usr/include/c++/5/istream:218:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(double&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
operator>>(double& __f)
^
/usr/include/c++/5/istream:218:7: note: no known conversion for argument 1 from 'integer_IO<signed char>' to 'double&'
/usr/include/c++/5/istream:222:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long double&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
operator>>(long double& __f)
^
/usr/include/c++/5/istream:222:7: note: no known conversion for argument 1 from 'integer_IO<signed char>' to 'long double&'
/usr/include/c++/5/istream:235:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(void*&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
operator>>(void*& __p)
^
/usr/include/c++/5/istream:235:7: note: no known conversion for argument 1 from 'integer_IO<signed char>' to 'void*&'
/usr/include/c++/5/istream:259:7: note: candidate: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__streambuf_type*) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__streambuf_type = std::basic_streambuf<char>]
operator>>(__streambuf_type* __sb);
^
/usr/include/c++/5/istream:259:7: note: no known conversion for argument 1 from 'integer_IO<signed char>' to 'std::basic_istream<char>::__streambuf_type* {aka std::basic_streambuf<char>*}'
In file included from /usr/include/c++/5/string:53:0,
from /usr/include/c++/5/bits/locale_classes.h:40,
from /usr/include/c++/5/bits/ios_base.h:41,
from /usr/include/c++/5/ios:42,
from /usr/include/c++/5/ostream:38,
from /usr/include/c++/5/iostream:39,
from prog.cpp:1:
/usr/include/c++/5/bits/basic_string.tcc:1441:5: note: candidate: template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, std::basic_string<_CharT, _Traits, _Alloc>&)
operator>>(basic_istream<_CharT, _Traits>& __in,
^
/usr/include/c++/5/bits/basic_string.tcc:1441:5: note: template argument deduction/substitution failed:
prog.cpp:38:17: note: 'integer_IO<signed char>' is not derived from 'std::basic_string<_CharT, _Traits, _Alloc>'
cin >> intIO(i);
^
In file included from /usr/include/c++/5/istream:934:0,
from /usr/include/c++/5/iostream:40,
from prog.cpp:1:
/usr/include/c++/5/bits/istream.tcc:955:5: note: candidate: template<class _CharT2, class _Traits2> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, _CharT2*)
operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s)
^
/usr/include/c++/5/bits/istream.tcc:955:5: note: template argument deduction/substitution failed:
prog.cpp:38:17: note: mismatched types '_CharT2*' and 'integer_IO<signed char>'
cin >> intIO(i);
^
In file included from /usr/include/c++/5/istream:934:0,
from /usr/include/c++/5/iostream:40,
from prog.cpp:1:
/usr/include/c++/5/bits/istream.tcc:923:5: note: candidate: template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, _CharT&)
operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c)
^
/usr/include/c++/5/bits/istream.tcc:923:5: note: template argument deduction/substitution failed:
prog.cpp:38:17: note: deduced conflicting types for parameter '_CharT' ('char' and 'integer_IO<signed char>')
cin >> intIO(i);
^
In file included from /usr/include/c++/5/iostream:40:0,
from prog.cpp:1:
/usr/include/c++/5/istream:756:5: note: candidate: template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, unsigned char&)
operator>>(basic_istream<char, _Traits>& __in, unsigned char& __c)
^
/usr/include/c++/5/istream:756:5: note: template argument deduction/substitution failed:
prog.cpp:38:15: note: cannot convert 'intIO<signed char>(i)' (type 'integer_IO<signed char>') to type 'unsigned char&'
cin >> intIO(i);
^
In file included from /usr/include/c++/5/iostream:40:0,
from prog.cpp:1:
/usr/include/c++/5/istream:761:5: note: candidate: template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, signed char&)
operator>>(basic_istream<char, _Traits>& __in, signed char& __c)
^
/usr/include/c++/5/istream:761:5: note: template argument deduction/substitution failed:
prog.cpp:38:15: note: cannot convert 'intIO<signed char>(i)' (type 'integer_IO<signed char>') to type 'signed char&'
cin >> intIO(i);
^
In file included from /usr/include/c++/5/iostream:40:0,
from prog.cpp:1:
/usr/include/c++/5/istream:803:5: note: candidate: template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, unsigned char*)
operator>>(basic_istream<char, _Traits>& __in, unsigned char* __s)
^
/usr/include/c++/5/istream:803:5: note: template argument deduction/substitution failed:
prog.cpp:38:15: note: cannot convert 'intIO<signed char>(i)' (type 'integer_IO<signed char>') to type 'unsigned char*'
cin >> intIO(i);
^
In file included from /usr/include/c++/5/iostream:40:0,
from prog.cpp:1:
/usr/include/c++/5/istream:808:5: note: candidate: template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, signed char*)
operator>>(basic_istream<char, _Traits>& __in, signed char* __s)
^
/usr/include/c++/5/istream:808:5: note: template argument deduction/substitution failed:
prog.cpp:38:15: note: cannot convert 'intIO<signed char>(i)' (type 'integer_IO<signed char>') to type 'signed char*'
cin >> intIO(i);
^
In file included from /usr/include/c++/5/iostream:40:0,
from prog.cpp:1:
/usr/include/c++/5/istream:924:5: note: candidate: std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&&, _Tp&) [with _CharT = char; _Traits = std::char_traits<char>; _Tp = integer_IO<signed char>] <near match>
operator>>(basic_istream<_CharT, _Traits>&& __is, _Tp& __x)
^
/usr/include/c++/5/istream:924:5: note: conversion of argument 2 would be ill-formed:
prog.cpp:38:15: error: invalid initialization of non-const reference of type 'integer_IO<signed char>&' from an rvalue of type 'integer_IO<signed char>'
cin >> intIO(i);
^
prog.cpp:14:19: note: candidate: std::istream& operator>>(std::istream&, integer_IO<signed char>&) <near match>
friend istream &operator>> (istream &is, integer_IO<T> &i)
^
prog.cpp:14:19: note: conversion of argument 2 would be ill-formed:
prog.cpp:38:15: error: invalid initialization of non-const reference of type 'integer_IO<signed char>&' from an rvalue of type 'integer_IO<signed char>'
cin >> intIO(i);
^