/in/foo.cc: In constructor 'reader::reader()':
/in/foo.cc:30:11: error: no matching function for call to 'xiang::xiang()'
reader(){
^
/in/foo.cc:18:3: note: candidate: xiang::xiang(int, int)
xiang(int xishu, int zhishu){
^~~~~
/in/foo.cc:18:3: note: candidate expects 2 arguments, 0 provided
/in/foo.cc:15:8: note: candidate: constexpr xiang::xiang(const xiang&)
struct xiang {
^~~~~
/in/foo.cc:15:8: note: candidate expects 1 argument, 0 provided
/in/foo.cc:15:8: note: candidate: constexpr xiang::xiang(xiang&&)
/in/foo.cc:15:8: note: candidate expects 1 argument, 0 provided
/in/foo.cc:31:23: error: no match for 'operator=' (operand types are 'xiang' and 'xiang*')
x = new xiang(0, 0);
^
/in/foo.cc:15:8: note: candidate: xiang& xiang::operator=(const xiang&)
struct xiang {
^~~~~
/in/foo.cc:15:8: note: no known conversion for argument 1 from 'xiang*' to 'const xiang&'
/in/foo.cc:15:8: note: candidate: xiang& xiang::operator=(xiang&&)
/in/foo.cc:15:8: note: no known conversion for argument 1 from 'xiang*' to 'xiang&&'
/in/foo.cc: In member function 'void reader::init()':
/in/foo.cc:39:23: error: no match for 'operator=' (operand types are 'xiang' and 'xiang*')
x = new xiang(0, 0);
^
/in/foo.cc:15:8: note: candidate: xiang& xiang::operator=(const xiang&)
struct xiang {
^~~~~
/in/foo.cc:15:8: note: no known conversion for argument 1 from 'xiang*' to 'const xiang&'
/in/foo.cc:15:8: note: candidate: xiang& xiang::operator=(xiang&&)
/in/foo.cc:15:8: note: no known conversion for argument 1 from 'xiang*' to 'xiang&&'
/in/foo.cc: In member function 'xiang reader::read(char)':
/in/foo.cc:82:38: error: no match for 'operator-' (operand types are 'xiang' and 'char')
x.zhishu = x.zhishu * 10 + (x-'0');
~^~~~
In file included from /usr/include/c++/6/bits/stl_algobase.h:67:0,
from /usr/include/c++/6/bits/char_traits.h:39,
from /usr/include/c++/6/ios:40,
from /usr/include/c++/6/ostream:38,
from /usr/include/c++/6/iostream:39,
from /in/foo.cc:1:
/usr/include/c++/6/bits/stl_iterator.h:333:5: note: candidate: template<class _Iterator> decltype ((__x.base() - __y.base())) std::operator-(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_Iterator>&)
operator-(const reverse_iterator<_Iterator>& __x,
^~~~~~~~
/usr/include/c++/6/bits/stl_iterator.h:333:5: note: template argument deduction/substitution failed:
/in/foo.cc:82:39: note: 'xiang' is not derived from 'const std::reverse_iterator<_Iterator>'
x.zhishu = x.zhishu * 10 + (x-'0');
^~~
In file included from /usr/include/c++/6/bits/stl_algobase.h:67:0,
from /usr/include/c++/6/bits/char_traits.h:39,
from /usr/include/c++/6/ios:40,
from /usr/include/c++/6/ostream:38,
from /usr/include/c++/6/iostream:39,
from /in/foo.cc:1:
/usr/include/c++/6/bits/stl_iterator.h:387:5: note: candidate: template<class _IteratorL, class _IteratorR> decltype ((__y.base() - __x.base())) std::operator-(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_IteratorR>&)
operator-(const reverse_iterator<_IteratorL>& __x,
^~~~~~~~
/usr/include/c++/6/bits/stl_iterator.h:387:5: note: template argument deduction/substitution failed:
/in/foo.cc:82:39: note: 'xiang' is not derived from 'const std::reverse_iterator<_Iterator>'
x.zhishu = x.zhishu * 10 + (x-'0');
^~~
In file included from /usr/include/c++/6/bits/stl_algobase.h:67:0,
from /usr/include/c++/6/bits/char_traits.h:39,
from /usr/include/c++/6/ios:40,
from /usr/include/c++/6/ostream:38,
from /usr/include/c++/6/iostream:39,
from /in/foo.cc:1:
/usr/include/c++/6/bits/stl_iterator.h:1186:5: note: candidate: template<class _IteratorL, class _IteratorR> decltype ((__x.base() - __y.base())) std::operator-(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorR>&)
operator-(const move_iterator<_IteratorL>& __x,
^~~~~~~~
/usr/include/c++/6/bits/stl_iterator.h:1186:5: note: template argument deduction/substitution failed:
/in/foo.cc:82:39: note: 'xiang' is not derived from 'const std::move_iterator<_IteratorL>'
x.zhishu = x.zhishu * 10 + (x-'0');
^~~
In file included from /usr/include/c++/6/bits/stl_algobase.h:67:0,
from /usr/include/c++/6/bits/char_traits.h:39,
from /usr/include/c++/6/ios:40,
from /usr/include/c++/6/ostream:38,
from /usr/include/c++/6/iostream:39,
from /in/foo.cc:1:
/usr/include/c++/6/bits/stl_iterator.h:1193:5: note: candidate: template<class _Iterator> decltype ((__x.base() - __y.base())) std::operator-(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorL>&)
operator-(const move_iterator<_Iterator>& __x,
^~~~~~~~
/usr/include/c++/6/bits/stl_iterator.h:1193:5: note: template argument deduction/substitution failed:
/in/foo.cc:82:39: note: 'xiang' is not derived from 'const std::move_iterator<_IteratorL>'
x.zhishu = x.zhishu * 10 + (x-'0');
^~~