Project Euler 22: Names scores by Loki
#include &lt;numeric&gt;!

I see no reason why individual score is computed via std::accumulate, but the total uses a loop. I recommend std::inner_product there, at least for consistency.

Similarly, the 

        for(int loop = 0;loop &lt; 256;++loop) { data[loop] = loop;}


is

        std::iota(data, data + 256, 0);


Of course, a magic 256 shall be replaced by a symbolic name.

I don't feel comfortable with std::set used just to avoid sorting. It  obscures the intention. You seem to have the same feeling, and put the clarifying comment. I recommend to be explicit: read the names into a vector, and sort it. BTW, it would also reduce space requirements.