LINUX.ORG.RU

История изменений

Исправление Deleted, (текущая версия) :

Если я правильно понимаю, то существует обычное применяемое решение. Реализуем самую общую функцию, а через нее реализуем дополнительные вспомогательные функции функции:

void set(const char *key, const char *val)
{
   //implemetation, using key and val
   // ...
}
void set(const string &key, const char *val)
{
    set(key.c_str(), val);
}
void set(const char *key, const string &val)
{
    set(key, val.c_str());
}
void set(const string &key, const string &val)
{
    set(key.c_str(), val.c_str());
}
//// void set(string key, string val) ОБЫЧНО НЕ ТРЕБУЕТСЯ

Все просто и понятно.

Исходная версия Deleted, :

Если я правильно понимаю, то существует обычное применяемое решение. Реализуем самую общую функцию, а через нее реализуем дополнительные вспомогательные функции функции:

void set(const char *key, const char *val)
{
   //implemetation, using key and val
   // ...
}
void set(const string &key, const char *val)
{
    set(key.c_str(), val);
}
void set(const char *key, const string &val)
{
    set(key, val.c_str());
}
void set(const string &key, const string &val)
{
    set(key.c_str(), val.c_str());
}

//// void set(string key, string val) ОБЫЧНО НЕ ТРЕБУЕТСЯ

[/ccode]

Все просто и понятно.