Closed fnrizzi closed 7 years ago
Still working on a more general fix, but the reason you're seeing this behavior is that your classes have implicitly deleted move constructors. Whenever you define any user-defined constructor that isn't a move constructor, the move constructor gets deleted implicitly. You can fix this by adding
distVectorGhost(distVectorGhost const&) = default;
distVectorGhost(distVectorGhost&&) = default;
to the distVectorGhost
class and the analogous thing for the distMatrix
class. We should be able to interact long-term with non-move-constructible classes, but I'm still working on a way to do so.
thanks David. so if i do that, it fixes it? the text i send you works like that ?
yes. I ran it and it worked, although the text you sent me is an infinite loop, so I changed it to converged.set_value(true)
inside the loop
thanks for fixing it. i will test it now. I owe you a donut or something else :)
attached file gives following error:
main.cc.zip
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1: DARMA assertion failed: 1: Expression should be true: false 1: Assertion details: 1: File: /Users/fnrizzi/Desktop/work/atdm/DARMAall/darmaInstDebug/cmake/../include/darma/impl/create_work_while.h 1: Line: 1038 1: DARMA encountered a failing piece of code that should be unreachable, most likely because an earlier error should have been thrown for the same reason. Something went wrong with While-Do capture 1: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1: Assertion failed: ((false) || (( DARMA_ASSERTION_BEGIN, std::cerr << "DARMA assertion failed:" << std::endl << " Expression should be true: " << "false" << std::endl << " Assertion details:" << std::endl << " File: " << FILE << std::endl << " Line: " << LINE << std::endl << " " << "DARMA encountered a failing piece of code that should be unreachable," << " most likely because an earlier error should have been thrown for the same reason. " "Something went wrong with While-Do capture" << std::endl, DARMA_ASSERTION_END ), false)), function do_capture, file /Users/fnrizzi/Desktop/work/atdm/DARMAall/darmaInstDebug/cmake/../include/darma/impl/create_work_while.h, line 1038. 1: ------------- Processor 0 Exiting: Caught Signal ------------