This is probably something stupid but I can't figure out what's wrong with the following code:
Code:
template <typename STATE, typename UNAIRY_FUNCTION>
std::vector<STATE> solvePuzzle(const STATE &start, const UNAIRY_FUNCTION goalfunc ){
    //compile error on next line. Says invalid template arguments.
    std::queue<std::set<STATE>::iterator> tryNext;
    ...
}