Информация об изменениях

Сообщение Re: Одна функция для разных типов от 25.08.2025 16:45

Изменено 25.08.2025 16:46 rg45

Re: Одна функция для разных типов
Здравствуйте, Su34, Вы писали:

S>Две функции выполняют одно и тоже, различаются по типам.

S>
void search(const char* mask)
S>{
S>    _finddata_t fd;
S>    _findfirst(mask, &fd);
S>}
S>void wsearch(const wchar_t* mask)
S>{
S>    _wfinddata_t fd;
S>    _wfindfirst(mask, &fd);
S>}

S>Можно ли объединить в одну функцию (или шаблон)? Хочется следующее:
S>
asearch("*.txt");    // выполняется search 
S>asearch(L"*.txt");    // выполняется wsearch

S>Спасибо!

Если я правильно понял, то главная цель — не экономия нескольких строк кода, а возможность унифицированного вызова?. Тогда можно просто написать обёртку с двумя перегрузками:

void search(const char* mask) { return search(mask); }
void search(const wchar_t* mask) { return wsearch(mask); }
Re: Одна функция для разных типов
Здравствуйте, Su34, Вы писали:

S>Две функции выполняют одно и тоже, различаются по типам.

S>
void search(const char* mask)
S>{
S>    _finddata_t fd;
S>    _findfirst(mask, &fd);
S>}
S>void wsearch(const wchar_t* mask)
S>{
S>    _wfinddata_t fd;
S>    _wfindfirst(mask, &fd);
S>}

S>Можно ли объединить в одну функцию (или шаблон)? Хочется следующее:
S>
asearch("*.txt");    // выполняется search 
S>asearch(L"*.txt");    // выполняется wsearch

S>Спасибо!

Если я правильно понял, то главная цель — не экономия нескольких строк кода, а возможность унифицированного вызова?. Тогда можно просто написать обёртку с двумя перегрузками:

void asearch(const char* mask) { return search(mask); }
void asearch(const wchar_t* mask) { return wsearch(mask); }