Portál AbcLinuxu, 13. května 2025 00:28
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.