Вопрос: Аргумент разных типов для одной функции (без перегрузки)
День всем добрый!
Я тут решил немного облегчить себе жизнь.
У меня есть функция:
C++ |
1
2
3
4
5
6
7
| void CombineWCHAR(WCHAR wchar_main[256], WCHAR wchar_0[256], WCHAR wchar_1[256] = L"", WCHAR wchar_2[256] = L"", WCHAR wchar_3[256] = L"", WCHAR wchar_4[256] = L"") {
wcscat(wchar_main, wchar_0);
wcscat(wchar_main, wchar_1);
wcscat(wchar_main, wchar_2);
wcscat(wchar_main, wchar_3);
wcscat(wchar_main, wchar_4);
} |
|
Как вы, наверное, поняли, она объединяет до шести строк типа WCHAR. Чтобы несколько функций много раз не писать, подключил заголовок с такой функцией.
Теперь я хочу апгрейдить эту функцию таким образом:
Я записываю первый аргумент типа WCHAR, а остальные аргументы типа char. Или, к примеру, третий и пятый аргументы char, а остальные WCHAR.
Как можно реализовать возможность введения аргумента нескольких разных типов? Чтобы потом проверять, какого типа агрумент и уже дальше либо перекодровать его и клеить, либо просто клеить.
Но без перегрузки, а то для всех возможных вариантов слишком нудно писать.
Добавлено через 10 минут
И ещё один вопрос: можно ли задефайнить всё так, чтобы, к примеру, если я написал:
C++ |
1
2
3
| WCHAR a;
WCHAR b;
WCHAR c = a + b; |
|
Это посчиталось компилятором как:
C++ |
1
2
| wcscat(c, a);
wcscat(c, b); |
|