if [ catch { load ./cpp11_move_typemaps[info sharedlibextension] Cpp11_move_typemaps} err_msg ] { puts stderr "Could not load shared object:\n$err_msg" } Counter_reset_counts MoveOnly mo 111 Counter_check_counts 1 0 0 0 0 0 MoveOnly_take mo Counter_check_counts 1 0 0 1 0 2 mo -delete Counter_check_counts 1 0 0 1 0 2 Counter_reset_counts MovableCopyable mo 111 Counter_check_counts 1 0 0 0 0 0 MovableCopyable_take mo Counter_check_counts 1 0 0 1 0 2 mo -delete Counter_check_counts 1 0 0 1 0 2 MoveOnly mo 222 MoveOnly_take mo set exception_thrown 0 if [ catch { MoveOnly_take mo } e ] { if {[string first "cannot release ownership as memory is not owned" $e] == -1} { error "incorrect exception message: $e" } set exception_thrown 1 } if {!$exception_thrown} { error "Should have thrown 'Cannot release ownership as memory is not owned' error" }