From 0c32c5054c7a1647a94bb4b12bcba1652df9d862 Mon Sep 17 00:00:00 2001 From: Jason Turner Date: Fri, 19 Jan 2018 13:01:44 -0700 Subject: [PATCH] Add clarification on use-after-move --- include/chaiscript/language/chaiscript_eval.hpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/chaiscript/language/chaiscript_eval.hpp b/include/chaiscript/language/chaiscript_eval.hpp index e5b2aa7e..f6472933 100644 --- a/include/chaiscript/language/chaiscript_eval.hpp +++ b/include/chaiscript/language/chaiscript_eval.hpp @@ -758,6 +758,8 @@ namespace chaiscript std::vector>(std::make_move_iterator(t_children.begin()), std::make_move_iterator(std::prev(t_children.end(), has_guard(t_children, 1)?2:1))) ), + // This apparent use after move is safe because we are only moving out the specific elements we need + // on each operation. m_body_node(get_body_node(std::move(t_children))), m_guard_node(get_guard_node(std::move(t_children), t_children.size()-this->children.size()==2))