I wonder if it might be worthwhile to write a different implementation for ToLowercase. The function pointer cast looks a bit fishy. And it seems it should have a check to make ensure the input is pure ASCII, in order to avoid undefined behavior.
vtkStdString ToLowercase(const vtkStdString& str)
{
vtkStdString s;
std::transform(str.begin(), str.end(), std::back_inserter(s), (int (*)(int))std::tolower);
return s;
}
@amaclean any thoughts?