#include
struct Node
{
int value;
Node* left;
Node* right;
Node(int i = 0): value(i), left(nullptr), right(nullptr)
{}
};
auto left = &Node::left;
auto right = &Node::right;
template
Node* Traverse(T np, TP... paths)
{
return (np ->* ... ->* paths);
}
int main()
{
Node* root = new Node{0};
root->left = new Node{1};
root->left->right = new Node{2};
Node* node = Traverse(root, left, right);
std::cout value
может кто -нибудь объяснить, что это значит в этом примере: < /p>
auto left = &Node::left;
auto right = &Node::right;
Этот root (экземпляр узла класса) имеет новое местоположение в памяти, как слева и right может ссылаться на правильное местоположение внутри root?
Node* root = new Node{0}; root->left = new Node{1}; root->left->right = new Node{2};
Node* node = Traverse(root, left, right);
std::cout value может кто -нибудь объяснить, что это значит в этом примере: < /p> auto left = &Node::left; auto right = &Node::right; [/code] Этот root (экземпляр узла класса) имеет новое местоположение в памяти, как слева и right может ссылаться на правильное местоположение внутри root?