Portál AbcLinuxu, 11. listopadu 2025 14:51
template<typename ResultType = std::string, typename InputCharType = char>
static ResultType ToString(const std::vector<InputCharType>& binaries)
{
requires_binaries_ct(InputCharType);
requires_base_string(ResultType);
return ResultType(binaries.begin(), binaries.end());
}
A chcel by som si k nej urobiť skratku s predvypleným prvým parametrom ako std::wstring (namiesto std::string). Ako na to? Intuícia mi hovorí že možno slovom using by sa to dalo nejako predvyplniť? Ale ako konkrétne? Takto to nefunguje.
using ToWString = ToString<std::wstring>
template <typename T> using ToWString = ToString<std::wstring>tu je to popsano lepe.
template <typename T> using ToWstring = ToString<std::wstring, T>;
#include <iostream>
// Plně generická funkce
template <typename T, typename U>
void f(T &&arg1, U &&arg2) {
std::wcout << arg1 << " " << arg2 << std::endl;
}
// Částečně specializovaný wrapper
template <typename T>
void f2(T &&arg1, const std::wstring &arg2) {
f(arg1, arg2);
}
int main()
{
f("abc", 123);
f2("abc", L"XXX");
f2("abc", 123);
return 0;
}
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.