Hey! I'm available for hire (and I appreciate tips)  

Within a class or function template, it is necessary label (with the
"typename" keyword) any name-dependent type - bytes.com

typename BST<TypeT>::BSTNode * BST<TypeT>::BSTNode::Insert(TypeT const& v)

I was creating a BST and LinkedList with private node classes and I ran into this error:
"expected constructor, destructor, or type conversion before '*'"

There are 3 root causes:
* referencing "BST" instead of "BST<TypeT>"
* referencing "BST<TypeT>::BSTNode *" as a return value instead of "typename BST<TypeT>::BSTNode *"
* attempting to use the standard ".h" / ".cpp" separation in the first place rather than just garbling everything together

By AJ ONeal

Was this useful to you? Share it!

Also, you can give me a tip or hire me.