I want to create a templated binary search tree with a templated node definition inside the templated class, something like this:
template <class T>
class BST {
    template <class U>
    class BSTNode {
        BSTNode<U>* _left;
    public:
        BSTNode<U>* GetLeft();
    };
};
template <class T>
template <class U>
BST<T>::BSTNode<U>* BST<T>::BSTNode<U>::GetLeft() {
    return _left;
}
I want to define the method outside the class. When I try to compile this, I get a bunch of errors. What am I doing wrong here? Please help me, thank you very much!