Пожалуйста, посмотрите этот код. C++
с функцией Clang
block
.
Может ли этот код избежать копирования? Пожалуйста, дайте мне знать ваше мнение.
Это просто практика избегания кучи.
class Element
{
public:
int value[1024]; // Here is a large entity.
Element()
{
}
};
class World
{
public:
Element a;
Element b;
inline World(Element& newA, Element& newB)
{
a = newA; // Source of newA is stored in somewhere, this copies whole Element during assignment.
b = newB;
}
inline World(void(^init)(Element& a, Element& b))
{
init(a, b); // Assignment is done without copying whole Element.
}
};