Invoking the emplace() method for std::vector

What is the correct way to invoke the emplace() method for std::vector, given the following template declarations? The requirement is to emplace an element inside the vector impl_tree at a given position, after the construction of the tree class template object.

(Note only relevant source code has been reproduced)

template<typename T1>
class node{

public:

node(T1&);

private:

T1 data;

};



template typename<T1,T2>
class tree{

private:

std::vector<std::shared_ptr<node<T1>>> impl_tree;

};