/in/foo.cc: In function 'int main()':
/in/foo.cc:33:65: error: invalid use of incomplete type 'class std::tuple<long long int, long long int, long long int, long long int>'
rects.push_back(tuple<int, int, int, int>(x1, y1, x2, y2));
^
In file included from /usr/include/c++/6/utility:70:0,
from /usr/include/c++/6/algorithm:60,
from /in/foo.cc:1:
/usr/include/c++/6/bits/stl_pair.h:83:11: note: declaration of 'class std::tuple<long long int, long long int, long long int, long long int>'
class tuple;
^~~~~
/in/foo.cc:46:32: error: no matching function for call to 'get(const std::tuple<long long int, long long int, long long int, long long int>&)'
int x1 = cx[get<0>(rect)], y1 = cy[get<1>(rect)];
^
In file included from /usr/include/c++/6/algorithm:60:0,
from /in/foo.cc:1:
/usr/include/c++/6/utility:202:5: note: candidate: template<long unsigned int _Int, class _Tp1, class _Tp2> constexpr typename std::tuple_element<_Int, std::pair<_Tp1, _Tp2> >::type& std::get(std::pair<_Tp1, _Tp2>&)
get(std::pair<_Tp1, _Tp2>& __in) noexcept
^~~
/usr/include/c++/6/utility:202:5: note: template argument deduction/substitution failed:
/in/foo.cc:46:32: note: types 'std::pair<_Tp1, _Tp2>' and 'const std::tuple<long long int, long long int, long long int, long long int>' have incompatible cv-qualifiers
int x1 = cx[get<0>(rect)], y1 = cy[get<1>(rect)];
^
In file included from /usr/include/c++/6/algorithm:60:0,
from /in/foo.cc:1:
/usr/include/c++/6/utility:207:5: note: candidate: template<long unsigned int _Int, class _Tp1, class _Tp2> constexpr typename std::tuple_element<_Int, std::pair<_Tp1, _Tp2> >::type&& std::get(std::pair<_Tp1, _Tp2>&&)
get(std::pair<_Tp1, _Tp2>&& __in) noexcept
^~~
/usr/include/c++/6/utility:207:5: note: template argument deduction/substitution failed:
/in/foo.cc:46:32: note: types 'std::pair<_Tp1, _Tp2>' and 'const std::tuple<long long int, long long int, long long int, long long int>' have incompatible cv-qualifiers
int x1 = cx[get<0>(rect)], y1 = cy[get<1>(rect)];
^
In file included from /usr/include/c++/6/algorithm:60:0,
from /in/foo.cc:1:
/usr/include/c++/6/utility:212:5: note: candidate: template<long unsigned int _Int, class _Tp1, class _Tp2> constexpr const typename std::tuple_element<_Int, std::pair<_Tp1, _Tp2> >::type& std::get(const std::pair<_Tp1, _Tp2>&)
get(const std::pair<_Tp1, _Tp2>& __in) noexcept
^~~
/usr/include/c++/6/utility:212:5: note: template argument deduction/substitution failed:
/in/foo.cc:46:32: note: 'const std::tuple<long long int, long long int, long long int, long long int>' is not derived from 'const std::pair<_Tp1, _Tp2>'
int x1 = cx[get<0>(rect)], y1 = cy[get<1>(rect)];
^
/in/foo.cc:47:32: error: no matching function for call to 'get(const std::tuple<long long int, long long int, long long int, long long int>&)'
int x2 = cx[get<2>(rect)], y2 = cy[get<3>(rect)];
^
In file included from /usr/include/c++/6/algorithm:60:0,
from /in/foo.cc:1:
/usr/include/c++/6/utility:202:5: note: candidate: template<long unsigned int _Int, class _Tp1, class _Tp2> constexpr typename std::tuple_element<_Int, std::pair<_Tp1, _Tp2> >::type& std::get(std::pair<_Tp1, _Tp2>&)
get(std::pair<_Tp1, _Tp2>& __in) noexcept
^~~
/usr/include/c++/6/utility:202:5: note: template argument deduction/substitution failed:
/in/foo.cc:47:32: note: types 'std::pair<_Tp1, _Tp2>' and 'const std::tuple<long long int, long long int, long long int, long long int>' have incompatible cv-qualifiers
int x2 = cx[get<2>(rect)], y2 = cy[get<3>(rect)];
^
In file included from /usr/include/c++/6/algorithm:60:0,
from /in/foo.cc:1:
/usr/include/c++/6/utility:207:5: note: candidate: template<long unsigned int _Int, class _Tp1, class _Tp2> constexpr typename std::tuple_element<_Int, std::pair<_Tp1, _Tp2> >::type&& std::get(std::pair<_Tp1, _Tp2>&&)
get(std::pair<_Tp1, _Tp2>&& __in) noexcept
^~~
/usr/include/c++/6/utility:207:5: note: template argument deduction/substitution failed:
/in/foo.cc:47:32: note: types 'std::pair<_Tp1, _Tp2>' and 'const std::tuple<long long int, long long int, long long int, long long int>' have incompatible cv-qualifiers
int x2 = cx[get<2>(rect)], y2 = cy[get<3>(rect)];
^
In file included from /usr/include/c++/6/algorithm:60:0,
from /in/foo.cc:1:
/usr/include/c++/6/utility:212:5: note: candidate: template<long unsigned int _Int, class _Tp1, class _Tp2> constexpr const typename std::tuple_element<_Int, std::pair<_Tp1, _Tp2> >::type& std::get(const std::pair<_Tp1, _Tp2>&)
get(const std::pair<_Tp1, _Tp2>& __in) noexcept
^~~
/usr/include/c++/6/utility:212:5: note: template argument deduction/substitution failed:
/in/foo.cc:47:32: note: 'const std::tuple<long long int, long long int, long long int, long long int>' is not derived from 'const std::pair<_Tp1, _Tp2>'
int x2 = cx[get<2>(rect)], y2 = cy[get<3>(rect)];
^
/in/foo.cc:48:18: error: 'y1' was not declared in this scope
diff[x1][y1]++;
^~
/in/foo.cc:49:18: error: 'y2' was not declared in this scope
diff[x1][y2]--;
^~
In file included from /usr/include/c++/6/bits/stl_algobase.h:67:0,
from /usr/include/c++/6/algorithm:61,
from /in/foo.cc:1:
/usr/include/c++/6/bits/stl_iterator.h: In instantiation of '__gnu_cxx::__normal_iterator<_Iterator, _Container>& __gnu_cxx::__normal_iterator<_Iterator, _Container>::operator++() [with _Iterator = std::tuple<long long int, long long int, long long int, long long int>*; _Container = std::vector<std::tuple<long long int, long long int, long long int, long long int> >]':
/in/foo.cc:45:29: required from here
/usr/include/c++/6/bits/stl_iterator.h:799:2: error: cannot increment a pointer to incomplete type 'std::tuple<long long int, long long int, long long int, long long int>'
++_M_current;
^~~~~~~~~~~~
In file included from /usr/include/c++/6/vector:64:0,
from /in/foo.cc:3:
/usr/include/c++/6/bits/stl_vector.h: In instantiation of 'std::_Vector_base<_Tp, _Alloc>::~_Vector_base() [with _Tp = std::tuple<long long int, long long int, long long int, long long int>; _Alloc = std::allocator<std::tuple<long long int, long long int, long long int, long long int> >]':
/usr/include/c++/6/bits/stl_vector.h:259:15: required from 'std::vector<_Tp, _Alloc>::vector() [with _Tp = std::tuple<long long int, long long int, long long int, long long int>; _Alloc = std::allocator<std::tuple<long long int, long long int, long long int, long long int> >]'
/in/foo.cc:28:39: required from here
/usr/include/c++/6/bits/stl_vector.h:161:9: error: invalid use of incomplete type 'class std::tuple<long long int, long long int, long long int, long long int>'
{ _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- this->_M_impl._M_start); }
^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/6/utility:70:0,
from /usr/include/c++/6/algorithm:60,
from /in/foo.cc:1:
/usr/include/c++/6/bits/stl_pair.h:83:11: note: declaration of 'class std::tuple<long long int, long long int, long long int, long long int>'
class tuple;
^~~~~
In file included from /usr/include/c++/6/bits/stl_tempbuf.h:60:0,
from /usr/include/c++/6/bits/stl_algo.h:62,
from /usr/include/c++/6/algorithm:62,
from /in/foo.cc:1:
/usr/include/c++/6/bits/stl_construct.h: In instantiation of 'void std::_Destroy(_ForwardIterator, _ForwardIterator) [with _Forwa