How would I write this so my std::find would actually deference the smart_pointers and compare the objects strings rather than their memory addresses? My first approach was to write a custom std::equal function however it does not accept templates as its own template types.