returns NULL from a C ++ template

advertisements

I have to create a template function that searches an element in a map variable. If the element exists, the function must return it. Otherwise i must return NULL.

template <class K, class E> E dictionary<K,E>::research(K key){

//map<K,E> elements;

if(elements.find(key)!=elements.end()){
    return elements.find(key)->second;
}
else{
    return NULL;
}

Since the return type is E, returning NULL gives me always an error. How can I make this work? Or I have to structure my function differently?

This is a school homework assignment and i must return NULL, no alternatives. I'd personally do differently if I could.


The design of this function is incorrect. It is perfectly possible that NULL is simply incompatible with the type E. For instance, suppose that E is a struct, or a std::string and so on.

This is a school homework assignment and I must return NULL, no alternatives.

Either your homework assignment is incorrect, or you have misunderstood its requirements. It is possible that you are expected to return a pointer to E?