Main.cc: In member function ‘void Solution::print(int)’: Main.cc:38:19: warning: decomposition declaration only available with -std=c++1z or -std=gnu++1z for (auto [i, j, k] : ans) ^ Main.cc:38:19: error: ‘std::tuple’ has incomplete type for (auto [i, j, k] : ans) ^~~~~~~~~ In file included from /usr/include/c++/7/vector:69:0, from Main.cc:3: /usr/include/c++/7/bits/vector.tcc: In instantiation of ‘void std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {int&, int&, int&}; _Tp = std::tuple; _Alloc = std::allocator >]’: Main.cc:25:33: required from here /usr/include/c++/7/bits/vector.tcc:102:6: error: cannot increment a pointer to incomplete type ‘std::tuple’ ++this->_M_impl._M_finish; ^~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/7/vector:64:0, from Main.cc:3: /usr/include/c++/7/bits/stl_vector.h: In instantiation of ‘std::vector<_Tp, _Alloc>::size_type std::vector<_Tp, _Alloc>::size() const [with _Tp = std::tuple; _Alloc = std::allocator >; std::vector<_Tp, _Alloc>::size_type = long unsigned int]’: Main.cc:31:27: required from here /usr/include/c++/7/bits/stl_vector.h:671:50: error: invalid use of incomplete type ‘class std::tuple’ { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); } ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/7/bits/move.h:54:0, from /usr/include/c++/7/bits/stl_pair.h:59, from /usr/include/c++/7/utility:70, from /usr/include/c++/7/algorithm:60, from Main.cc:1: /usr/include/c++/7/type_traits:2560:11: note: declaration of ‘class std::tuple’ class tuple; ^~~~~ In file included from /usr/include/c++/7/bits/stl_algobase.h:67:0, from /usr/include/c++/7/algorithm:61, from Main.cc:1: /usr/include/c++/7/bits/stl_iterator.h: In instantiation of ‘__gnu_cxx::__normal_iterator<_Iterator, _Container>& __gnu_cxx::__normal_iterator<_Iterator, _Container>::operator++() [with _Iterator = std::tuple*; _Container = std::vector >]’: Main.cc:38:31: required from here /usr/include/c++/7/bits/stl_iterator.h:805:2: error: cannot increment a pointer to incomplete type ‘std::tuple’ ++_M_current; ^~~~~~~~~~~~ In file included from /usr/include/c++/7/vector:64:0, from Main.cc:3: /usr/include/c++/7/bits/stl_vector.h: In instantiation of ‘std::_Vector_base<_Tp, _Alloc>::~_Vector_base() [with _Tp = std::tuple; _Alloc = std::allocator >]’: /usr/include/c++/7/bits/stl_vector.h:263:15: required from ‘std::vector<_Tp, _Alloc>::vector() [with _Tp = std::tuple; _Alloc = std::allocator >]’ Main.cc:8:8: required from here /usr/include/c++/7/bits/stl_vector.h:163:9: error: invalid use of incomplete type ‘class std::tuple’ { _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++/7/bits/move.h:54:0, from /usr/include/c++/7/bits/stl_pair.h:59, from /usr/include/c++/7/utility:70, from /usr/include/c++/7/algorithm:60, from Main.cc:1: /usr/include/c++/7/type_traits:2560:11: note: declaration of ‘class std::tuple’ class tuple; ^~~~~ In file included from /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:33:0, from /usr/include/c++/7/bits/allocator.h:46, from /usr/include/c++/7/string:41, from /usr/include/c++/7/bits/locale_classes.h:40, from /usr/include/c++/7/bits/ios_base.h:41, from /usr/include/c++/7/ios:42, from /usr/include/c++/7/ostream:38, from /usr/include/c++/7/iostream:39, from Main.cc:2: /usr/include/c++/7/ext/new_allocator.h: In instantiation of ‘void __gnu_cxx::new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = std::tuple; _Args = {int&, int&, int&}; _Tp = std::tuple]’: /usr/include/c++/7/bits/alloc_traits.h:475:4: required from ‘static void std::allocator_traits >::construct(std::allocator_traits >::allocator_type&, _Up*, _Args&& ...) [with _Up = std::tuple; _Args = {int&, int&, int&}; _Tp = std::tuple; std::allocator_traits >::allocator_type = std::allocator >]’ /usr/include/c++/7/bits/vector.tcc:100:30: required from ‘void std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {int&, int&, int&}; _Tp = std::tuple; _Alloc = std::allocator >]’ Main.cc:25:33: required from here /usr/include/c++/7/ext/new_allocator.h:136:4: error: invalid use of incomplete type ‘class std::tuple’ { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); } ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/7/bits/move.h:54:0, from /usr/include/c++/7/bits/stl_pair.h:59, from /usr/include/c++/7/utility:70, from /usr/include/c++/7/algorithm:60, from Main.cc:1: /usr/include/c++/7/type_traits:2560:11: note: declaration of ‘class std::tuple’ class tuple; ^~~~~ In file included from /usr/include/c++/7/bits/stl_tempbuf.h:60:0, from /usr/include/c++/7/bits/stl_algo.h:62, from /usr/include/c++/7/algorithm:62, from Main.cc:1: /usr/include/c++/7/bits/stl_construct.h: In instantiation of ‘void std::_Destroy(_ForwardIterator, _ForwardIterator) [with _ForwardIterator = std::tuple*]’: /usr/include/c++/7/bits/stl_construct.h:206:15: required from ‘void std::_Destroy(_ForwardIterator, _ForwardIterator, std::allocator<_Tp>&) [with _ForwardIterator = std::tuple*; _Tp = std::tuple]’ /usr/include/c++/7/bits/stl_vector.h:434:22: required from ‘std::vector<_Tp, _Alloc>::~vector() [with _Tp = std::tuple; _Alloc = std::allocator >]’ Main.cc:8:8: required from here /usr/include/c++/7/bits/stl_construct.h:133:7: error: static assertion failed: value type is destructible static_assert(is_destructible<_Value_type>::value, ^~~~~~~~~~~~~ /usr/include/c++/7/bits/stl_construct.h:137:11: error: invalid use of incomplete type ‘std::iterator_traits*>::value_type {aka class std::tuple}’ std::_Destroy_aux<__has_trivial_destructor(_Value_type)>:: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ __destroy(__first, __last); ~~~~~~~~~^~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/7/bits/move.h:54:0, from /usr/include/c++/7/bits/stl_pair.h:59, from /usr/include/c++/7/utility:70, from /usr/include/c++/7/algorithm:60, from Main.cc:1: /usr/include/c++/7/type_traits:2560:11: note: declaration of ‘std::iterator_traits*>::value_type {aka class std::tuple}’ class tuple; ^~~~~