Project Euler 22: Names scores by Loki 2
std::accumulate with a lambda is quite a bit more complicated than writing out the range-for-loop manually, and it isn't even more concise:

long result = 0;
for(char c : name)
    result += c - 'A' + 1;
return result;

Using a std::set instead of a std::vector and sorting it once manually after reading everything in is possibly a bit less efficient. The really interesting part though is that duplicates are silently discarded, and the problem-statement doesn't seem to allow that.
Your range-for-loop in main needlessly copies every string. Better go for references even though that's slightly longer:

for(const auto&amp; name: names)

Inserting a single char instead of a length-1 string is probably slightly more efficient.