Thanks for providing and maintaining regex. The following code is used in a number of the example snippets: #void load_file(std::string& s, std::istream& is) #{ # s.erase(); # if(is.bad()) return; # s.reserve(is.rdbuf()->in_avail()); # char c; # while(is.get(c)) # { # if(s.capacity() == s.size()) # s.reserve(s.capacity() * 3); # s.append(1, c); # } #} My impression is that this code is used because some compilers won't accept a simpler and more direct approach. I was wondering if the following would work "cross-platform" (It seems to work ok with the Microsoft Visual Studio vc7.1 compiler, but I am ignorant of other compilers): #void load_file(std::string& s, std::istream& is) #{ # if(is.bad()) return; # // Use 0 as CrLf delimiter to cause entire file to be read # getline(is, s, '\0'); #}