typedef std::vector< stm::shared<int> > NumberList;
void clear_list(stm::shared<NumberList> & numbers)
{
stm::atomic([&](stm::transaction & tx)
{
// Error! Can't call stm::shared<int>::operator=()
NumberList & n = numbers.open_rw(tx);
n.clear();
});
}
#if 0
03:00:41: Running build steps for project QtTetris...
03:00:41: Starting: "/usr/bin/make" VERBOSE=1 -j4
/usr/bin/cmake -H/home/francis/svn/jalf-stm/QtTetris -B/home/francis/svn/jalf-stm/Build --check-build-system CMakeFiles/Makefile.cmake 0
/usr/bin/cmake -E cmake_progress_start /home/francis/svn/jalf-stm/Build/CMakeFiles /home/francis/svn/jalf-stm/Build/CMakeFiles/progress.marks
/usr/bin/make -f CMakeFiles/Makefile2 all
make[1]: Entering directory `/home/francis/svn/jalf-stm/Build'
/usr/bin/make -f Release/Linux/x86_64/lib/Futile/CMakeFiles/Futile.dir/build.make Release/Linux/x86_64/lib/Futile/CMakeFiles/Futile.dir/depend
/usr/bin/make -f Release/Linux/x86_64/lib/Tetris/CMakeFiles/Tetris.dir/build.make Release/Linux/x86_64/lib/Tetris/CMakeFiles/Tetris.dir/depend
make[2]: Entering directory `/home/francis/svn/jalf-stm/Build'
cd /home/francis/svn/jalf-stm/Build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/francis/svn/jalf-stm/QtTetris /home/francis/svn/jalf-stm/Futile /home/francis/svn/jalf-stm/Build /home/francis/svn/jalf-stm/Build/Release/Linux/x86_64/lib/Futile /home/francis/svn/jalf-stm/Build/Release/Linux/x86_64/lib/Futile/CMakeFiles/Futile.dir/DependInfo.cmake --color=
make[2]: Leaving directory `/home/francis/svn/jalf-stm/Build'
/usr/bin/make -f Release/Linux/x86_64/lib/Futile/CMakeFiles/Futile.dir/build.make Release/Linux/x86_64/lib/Futile/CMakeFiles/Futile.dir/build
make[2]: Entering directory `/home/francis/svn/jalf-stm/Build'
make[2]: Nothing to be done for `Release/Linux/x86_64/lib/Futile/CMakeFiles/Futile.dir/build'.
make[2]: Leaving directory `/home/francis/svn/jalf-stm/Build'
/usr/bin/cmake -E cmake_progress_report /home/francis/svn/jalf-stm/Build/CMakeFiles 1 2 3 4 5 6 7 8 9
make[2]: Entering directory `/home/francis/svn/jalf-stm/Build'
cd /home/francis/svn/jalf-stm/Build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/francis/svn/jalf-stm/QtTetris /home/francis/svn/jalf-stm/Tetris /home/francis/svn/jalf-stm/Build /home/francis/svn/jalf-stm/Build/Release/Linux/x86_64/lib/Tetris /home/francis/svn/jalf-stm/Build/Release/Linux/x86_64/lib/Tetris/CMakeFiles/Tetris.dir/DependInfo.cmake --color=
[ 20%] Built target Futile
make[2]: Leaving directory `/home/francis/svn/jalf-stm/Build'
/usr/bin/make -f Release/Linux/x86_64/lib/Tetris/CMakeFiles/Tetris.dir/build.make Release/Linux/x86_64/lib/Tetris/CMakeFiles/Tetris.dir/build
make[2]: Entering directory `/home/francis/svn/jalf-stm/Build'
/usr/bin/cmake -E cmake_progress_report /home/francis/svn/jalf-stm/Build/CMakeFiles 40
/usr/bin/cmake -E cmake_progress_report /home/francis/svn/jalf-stm/Build/CMakeFiles 41
/usr/bin/cmake -E cmake_progress_report /home/francis/svn/jalf-stm/Build/CMakeFiles 42
/usr/bin/cmake -E cmake_progress_report /home/francis/svn/jalf-stm/Build/CMakeFiles 43
[ 25%] [ 25%] [ 27%] [ 30%] Building CXX object Release/Linux/x86_64/lib/Tetris/CMakeFiles/Tetris.dir/src/NodeCalculatorImpl.cpp.o
cd /home/francis/svn/jalf-stm/Build/Release/Linux/x86_64/lib/Tetris && /home/francis/bin/c++ -O3 -DNDEBUG -I/home/francis/svn/jalf-stm/QtTetris/../Futile/include -I/home/francis/svn/jalf-stm/QtTetris/../Tetris/include -isystem /home/francis/svn/jalf-stm/QtTetris/../3rdParty/Boost -isystem /home/francis/svn/jalf-stm/QtTetris/../3rdParty/STM -isystem /home/francis/svn/jalf-stm/QtTetris/../3rdParty/Poco/Foundation/include -DTETRIS_QT=1 -std=c++0x -Wall -Wextra -Werror -O3 -DNDEBUG -o CMakeFiles/Tetris.dir/src/NodeCalculatorImpl.cpp.o -c /home/francis/svn/jalf-stm/Tetris/src/NodeCalculatorImpl.cpp
Building CXX object Release/Linux/x86_64/lib/Tetris/CMakeFiles/Tetris.dir/src/Player.cpp.o
Building CXX object Release/Linux/x86_64/lib/Tetris/CMakeFiles/Tetris.dir/src/Unicode.cpp.o
Building CXX object Release/Linux/x86_64/lib/Tetris/CMakeFiles/Tetris.dir/src/SingleThreadedNodeCalculator.cpp.o
cd /home/francis/svn/jalf-stm/Build/Release/Linux/x86_64/lib/Tetris && /home/francis/bin/c++ -O3 -DNDEBUG -I/home/francis/svn/jalf-stm/QtTetris/../Futile/include -I/home/francis/svn/jalf-stm/QtTetris/../Tetris/include -isystem /home/francis/svn/jalf-stm/QtTetris/../3rdParty/Boost -isystem /home/francis/svn/jalf-stm/QtTetris/../3rdParty/STM -isystem /home/francis/svn/jalf-stm/QtTetris/../3rdParty/Poco/Foundation/include -DTETRIS_QT=1 -std=c++0x -Wall -Wextra -Werror -O3 -DNDEBUG -o CMakeFiles/Tetris.dir/src/Player.cpp.o -c /home/francis/svn/jalf-stm/Tetris/src/Player.cpp
cd /home/francis/svn/jalf-stm/Build/Release/Linux/x86_64/lib/Tetris && /home/francis/bin/c++ -O3 -DNDEBUG -I/home/francis/svn/jalf-stm/QtTetris/../Futile/include -I/home/francis/svn/jalf-stm/QtTetris/../Tetris/include -isystem /home/francis/svn/jalf-stm/QtTetris/../3rdParty/Boost -isystem /home/francis/svn/jalf-stm/QtTetris/../3rdParty/STM -isystem /home/francis/svn/jalf-stm/QtTetris/../3rdParty/Poco/Foundation/include -DTETRIS_QT=1 -std=c++0x -Wall -Wextra -Werror -O3 -DNDEBUG -o CMakeFiles/Tetris.dir/src/SingleThreadedNodeCalculator.cpp.o -c /home/francis/svn/jalf-stm/Tetris/src/SingleThreadedNodeCalculator.cpp
cd /home/francis/svn/jalf-stm/Build/Release/Linux/x86_64/lib/Tetris && /home/francis/bin/c++ -O3 -DNDEBUG -I/home/francis/svn/jalf-stm/QtTetris/../Futile/include -I/home/francis/svn/jalf-stm/QtTetris/../Tetris/include -isystem /home/francis/svn/jalf-stm/QtTetris/../3rdParty/Boost -isystem /home/francis/svn/jalf-stm/QtTetris/../3rdParty/STM -isystem /home/francis/svn/jalf-stm/QtTetris/../3rdParty/Poco/Foundation/include -DTETRIS_QT=1 -std=c++0x -Wall -Wextra -Werror -O3 -DNDEBUG -o CMakeFiles/Tetris.dir/src/Unicode.cpp.o -c /home/francis/svn/jalf-stm/Tetris/src/Unicode.cpp
In file included from /usr/include/c++/4.6/bits/char_traits.h:41:0,
from /usr/include/c++/4.6/string:42,
from /usr/include/c++/4.6/stdexcept:40,
from /home/francis/svn/jalf-stm/QtTetris/../Tetris/include/Tetris/BlockType.h:5,
from /home/francis/svn/jalf-stm/QtTetris/../Tetris/include/Tetris/BlockTypes.h:5,
from /home/francis/svn/jalf-stm/QtTetris/../Tetris/include/Tetris/NodeCalculatorImpl.h:5,
from /home/francis/svn/jalf-stm/Tetris/src/NodeCalculatorImpl.cpp:1:
/usr/include/c++/4.6/bits/stl_algobase.h: In static member function ‘static _OI std::__copy_move<false, false, std::random_access_iterator_tag>::__copy_m(_II, _II, _OI) [with _II = const stm::shared<int>*, _OI = stm::shared<int>*]’:
/usr/include/c++/4.6/bits/stl_algobase.h:384:70: instantiated from ‘_OI std::__copy_move_a(_II, _II, _OI) [with bool _IsMove = false, _II = const stm::shared<int>*, _OI = stm::shared<int>*]’
/usr/include/c++/4.6/bits/stl_algobase.h:422:39: instantiated from ‘_OI std::__copy_move_a2(_II, _II, _OI) [with bool _IsMove = false, _II = __gnu_cxx::__normal_iterator<const stm::shared<int>*, std::vector<stm::shared<int> > >, _OI = __gnu_cxx::__normal_iterator<stm::shared<int>*, std::vector<stm::shared<int> > >]’
/usr/include/c++/4.6/bits/stl_algobase.h:454:18: instantiated from ‘_OI std::copy(_II, _II, _OI) [with _II = __gnu_cxx::__normal_iterator<const stm::shared<int>*, std::vector<stm::shared<int> > >, _OI = __gnu_cxx::__normal_iterator<stm::shared<int>*, std::vector<stm::shared<int> > >]’
/usr/include/c++/4.6/bits/vector.tcc:178:8: instantiated from ‘std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(const std::vector<_Tp, _Alloc>&) [with _Tp = stm::shared<int>, _Alloc = std::allocator<stm::shared<int> >]’
/home/francis/svn/jalf-stm/QtTetris/../3rdParty/STM/stm/buffer_functions.hpp:43:5: instantiated from ‘void stm::frontend::nested_assign(const stm::backend::metadata*, void*) [with Ty = std::vector<stm::shared<int> >]’
/home/francis/svn/jalf-stm/QtTetris/../3rdParty/STM/stm/shared_internal_common.hpp:58:78: instantiated from ‘stm::frontend::shared_internal_common<backend_type, T>::non_const_val& stm::frontend::shared_internal_common<backend_type, T>::open_rw(tx_type&) [with tx_type = stm::transaction, derived = stm::frontend::shared_internal<std::vector<stm::shared<int> > >, T = std::vector<stm::shared<int> >, stm::frontend::shared_internal_common<backend_type, T>::non_const_val = std::vector<stm::shared<int> >]’
/home/francis/svn/jalf-stm/QtTetris/../3rdParty/STM/stm/shared.hpp:45:54: instantiated from ‘stm::shared<T>::non_const_val& stm::shared<T>::open_rw(stm::transaction&) [with T = std::vector<stm::shared<int> >, stm::shared<T>::non_const_val = std::vector<stm::shared<int> >]’
/home/francis/svn/jalf-stm/Tetris/src/NodeCalculatorImpl.cpp:32:44: instantiated from here
/usr/include/c++/4.6/bits/stl_algobase.h:329:8: error: use of deleted function ‘stm::shared<int>& stm::shared<int>::operator=(const stm::shared<int>&)’
In file included from /home/francis/svn/jalf-stm/QtTetris/../3rdParty/STM/stm.hpp:10:0,
from /home/francis/svn/jalf-stm/QtTetris/../Tetris/include/Tetris/NodeCalculatorImpl.h:15,
from /home/francis/svn/jalf-stm/Tetris/src/NodeCalculatorImpl.cpp:1:
/home/francis/svn/jalf-stm/QtTetris/../3rdParty/STM/stm/shared.hpp:23:9: error: ‘stm::shared<int>& stm::shared<int>::operator=(const stm::shared<int>&)’ is implicitly deleted because the default definition would be ill-formed:
/home/francis/svn/jalf-stm/QtTetris/../3rdParty/STM/stm/shared.hpp:23:9: error: use of deleted function ‘stm::frontend::shared_internal<int>& stm::frontend::shared_internal<int>::operator=(const stm::frontend::shared_internal<int>&)’
In file included from /home/francis/svn/jalf-stm/QtTetris/../3rdParty/STM/stm/shared.hpp:4:0,
from /home/francis/svn/jalf-stm/QtTetris/../3rdParty/STM/stm.hpp:10,
from /home/francis/svn/jalf-stm/QtTetris/../Tetris/include/Tetris/NodeCalculatorImpl.h:15,
from /home/francis/svn/jalf-stm/Tetris/src/NodeCalculatorImpl.cpp:1:
/home/francis/svn/jalf-stm/QtTetris/../3rdParty/STM/stm/shared_internal.hpp:12:10: error: ‘stm::frontend::shared_internal<int>& stm::frontend::shared_internal<int>::operator=(const stm::frontend::shared_internal<int>&)’ is implicitly deleted because the default definition would be ill-formed:
/home/francis/svn/jalf-stm/QtTetris/../3rdParty/STM/stm/shared_internal.hpp:12:10: error: use of deleted function ‘stm::frontend::shared_internal_common<stm::frontend::shared_internal<int>, int>& stm::frontend::shared_internal_common<stm::frontend::shared_internal<int>, int>::operator=(const stm::frontend::shared_internal_common<stm::frontend::shared_internal<int>, int>&)’
In file included from /home/francis/svn/jalf-stm/QtTetris/../3rdParty/STM/stm/shared_internal.hpp:4:0,
from /home/francis/svn/jalf-stm/QtTetris/../3rdParty/STM/stm/shared.hpp:4,
from /home/francis/svn/jalf-stm/QtTetris/../3rdParty/STM/stm.hpp:10,
from /home/francis/svn/jalf-stm/QtTetris/../Tetris/include/Tetris/NodeCalculatorImpl.h:15,
from /home/francis/svn/jalf-stm/Tetris/src/NodeCalculatorImpl.cpp:1:
/home/francis/svn/jalf-stm/QtTetris/../3rdParty/STM/stm/shared_internal_common.hpp:21:10: error: ‘stm::frontend::shared_internal_common<stm::frontend::shared_internal<int>, int>& stm::frontend::shared_internal_common<stm::frontend::shared_internal<int>, int>::operator=(const stm::frontend::shared_internal_common<stm::frontend::shared_internal<int>, int>&)’ is implicitly deleted because the default definition would be ill-formed:
/home/francis/svn/jalf-stm/QtTetris/../3rdParty/STM/stm/shared_base.hpp:20:17: error: ‘stm::backend::shared_base& stm::backend::shared_base::operator=(const stm::backend::shared_base&)’ is private
/home/francis/svn/jalf-stm/QtTetris/../3rdParty/STM/stm/shared_internal_common.hpp:21:10: error: within this context
In file included from /usr/include/c++/4.6/bits/char_traits.h:41:0,
from /usr/include/c++/4.6/string:42,
from /usr/include/c++/4.6/stdexcept:40,
from /home/francis/svn/jalf-stm/QtTetris/../Tetris/include/Tetris/BlockType.h:5,
from /home/francis/svn/jalf-stm/QtTetris/../Tetris/include/Tetris/BlockTypes.h:5,
from /home/francis/svn/jalf-stm/QtTetris/../Tetris/include/Tetris/NodeCalculatorImpl.h:5,
from /home/francis/svn/jalf-stm/Tetris/src/NodeCalculatorImpl.cpp:1:
/usr/include/c++/4.6/bits/stl_algobase.h: In static member function ‘static _OI std::__copy_move<false, false, std::random_access_iterator_tag>::__copy_m(_II, _II, _OI) [with _II = stm::shared<int>*, _OI = stm::shared<int>*]’:
/usr/include/c++/4.6/bits/stl_algobase.h:384:70: instantiated from ‘_OI std::__copy_move_a(_II, _II, _OI) [with bool _IsMove = false, _II = stm::shared<int>*, _OI = stm::shared<int>*]’
/usr/include/c++/4.6/bits/stl_algobase.h:422:39: instantiated from ‘_OI std::__copy_move_a2(_II, _II, _OI) [with bool _IsMove = false, _II = stm::shared<int>*, _OI = stm::shared<int>*]’
/usr/include/c++/4.6/bits/stl_algobase.h:454:18: instantiated from ‘_OI std::copy(_II, _II, _OI) [with _II = stm::shared<int>*, _OI = stm::shared<int>*]’
/usr/include/c++/4.6/bits/vector.tcc:183:8: instantiated from ‘std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(const std::vector<_Tp, _Alloc>&) [with _Tp = stm::shared<int>, _Alloc = std::allocator<stm::shared<int> >]’
/home/francis/svn/jalf-stm/QtTetris/../3rdParty/STM/stm/buffer_functions.hpp:43:5: instantiated from ‘void stm::frontend::nested_assign(const stm::backend::metadata*, void*) [with Ty = std::vector<stm::shared<int> >]’
/home/francis/svn/jalf-stm/QtTetris/../3rdParty/STM/stm/shared_internal_common.hpp:58:78: instantiated from ‘stm::frontend::shared_internal_common<backend_type, T>::non_const_val& stm::frontend::shared_internal_common<backend_type, T>::open_rw(tx_type&) [with tx_type = stm::transaction, derived = stm::frontend::shared_internal<std::vector<stm::shared<int> > >, T = std::vector<stm::shared<int> >, stm::frontend::shared_internal_common<backend_type, T>::non_const_val = std::vector<stm::shared<int> >]’
/home/francis/svn/jalf-stm/QtTetris/../3rdParty/STM/stm/shared.hpp:45:54: instantiated from ‘stm::shared<T>::non_const_val& stm::shared<T>::open_rw(stm::transaction&) [with T = std::vector<stm::shared<int> >, stm::shared<T>::non_const_val = std::vector<stm::shared<int> >]’
/home/francis/svn/jalf-stm/Tetris/src/NodeCalculatorImpl.cpp:32:44: instantiated from here
/usr/include/c++/4.6/bits/stl_algobase.h:329:8: error: use of deleted function ‘stm::shared<int>& stm::shared<int>::operator=(const stm::shared<int>&)’
make[2]: Leaving directory `/home/francis/svn/jalf-stm/Build'
make[1]: Leaving directory `/home/francis/svn/jalf-stm/Build'
make[2]: *** [Release/Linux/x86_64/lib/Tetris/CMakeFiles/Tetris.dir/src/NodeCalculatorImpl.cpp.o] Error 1
make[1]: *** [Release/Linux/x86_64/lib/Tetris/CMakeFiles/Tetris.dir/all] Error 2
make: *** [all] Error 2
03:00:43: The process "/usr/bin/make" exited with code 2.
Error while building project QtTetris (target: Desktop)
When executing build step 'Clone of Make'
#endif