If an object is trivially copyable, then it’s a good idea to use std::copy
.
From std::copy, std::copy_if - cppreference.com
In practice, implementations of
std::copy
avoid multiple assignments and use bulk copy functions such as std::memmove if the value type is TriviallyCopyable
It turns out our var
are trivially copyable as the following passes:
EXPECT_TRUE(std::is_trivially_copyable<stan::math::var>::value);
The new traits metaprograms are really nice in C++11.