c++ - Passing a const reference of std::pair to a function -


i wrote following. however, i'm confused managed compile. did, have questions...

void tree_walk(const std::pair<tree, node> &tree_root) {    tree t = tree_root.first;    node current = tree_root.second;     // code walks tree, updating current go along. } 

i'm wondering if calling tree.first copies tree? semantics of passing std::pair reference?

tree_rooting.first not copy anything, but

tree t = tree_root.first; 

does. if not want copy tree, can do

const tree &t = tree_root.first; 

to answer second question: correctly passed pair function const reference. if want modify input, leave out const in functions signature pass non-constreference.


Popular posts from this blog