Couper les espaces d'une chaîne

Je sais qu'il ya plusieurs façons de le faire en Java et C qui sont sympas, mais en C++ je n'arrive pas à trouver un moyen facile de mettre en œuvre une chaîne de caractères la fonction de coupe.

C'est ce que j'ai actuellement:

string trim(string& str)
{
    size_t first = str.find_first_not_of(' ');
    size_t last = str.find_last_not_of(' ');
    return str.substr(first, (last-first+1));
}

mais à chaque fois que j'essaie de l'appeler

trim(myString);

J'obtiens l'erreur du compilateur

/tmp/ccZZKSEq.o: In function `song::Read(std::basic_ifstream<char, 
std::char_traits<char> >&, std::basic_ifstream<char, std::char_traits<char> >&, char const*, char const*)':
song.cpp:(.text+0x31c): undefined reference to `song::trim(std::string&)'
collect2: error: ld returned 1 exit status

Je suis en train d'essayer de trouver un moyen simple et standard de rogner attaque et de fuite des espaces à partir d'une chaîne sans prendre jusqu'à 100 lignes de code, et j'ai essayé en utilisant les regex, mais ne pouvait pas obtenir que cela fonctionne ainsi.

Je ne peux pas utiliser Boost.

source d'informationauteur Sej