Ok, I sorted it out...just needed to return pair<string,string> !!

Code:
#include <iostream>
#include <string>
#include <map>
#include <stdlib.h>
#include <assert.h>
using namespace std;

void chomp(string&);
pair<string,string> mysplit(string,string);

int main()
{
	map<string,string> hash;

	string line = "key: value\r\n";
	chomp(line);

	hash.insert(mysplit(line, ": "));

	for(map<string,string>::const_iterator it=hash.begin(); it!=hash.end(); ++it)
	{
		cout << it->first << "->" << it->second << endl;
	}

	system("pause");
	return EXIT_SUCCESS;
}

void chomp(string& szString)
{
	string whitespaces(" \t\f\v\n\r");
	size_t found;

	found=szString.find_last_not_of(whitespaces);
	if (found!=string::npos)
		szString.erase(found+1);
	else
		szString.clear();
}

pair<string,string> mysplit(string str, string delim)
{
	string::size_type match = str.find(delim);
	assert(match != string::npos);

	return pair<string,string>(
		string(str.begin(), str.begin() + match),
		string(str.begin() + match + delim.length(), str.end())
		);
}