I have a template class and I want to add a special function to a particular specialization of the template. This function only makes sense for the std::string template.

I showed how I am handling this currently...the problem is that the deleted function is still visible to all template types, and not just the Match template that I want to use it with. 

**Is there a more elegant way to handle this dilemma?**

```
 template<typename T> 
 class Match {

  /*
   *Class Definition
   * 
   */

   void string_function() = delete;
 };

template<>
void Match<Std::string>::string_function(){

    //do something that only makes sense with strings
}

```