маловероятно, что для этого вам понадобится оптимизированный компилятором наивный алгоритм, например
string::iterator it(str.begin()), end(str.end())
for(; it != end && *it == ' '; ++it);
return it == end;
РЕДАКТИРОВАТЬ: На самом деле - есть более быстрый способ (в зависимости от размера строки и доступной памяти) ..
std::string ns(str.size(), ' ');
return ns == str;
РЕДАКТИРОВАТЬ: на самом деле выше не быстро ... это глупо ... придерживайтесь наивной реализации, оптимизатор будет во всем этом ...
ИЗМЕНИТЬ СНОВА: черт возьми, ядумаю, лучше взглянуть на функции в std::string
return str.find_first_not_of(' ') == string::npos;