A
Size: a a a
АК
template <class... Args>
std::unique_ptr<void, void(*)(void*)> erase_type(std::function<void(Args...)> f) {
using f_t = std::function<void(Args...)>;
return std::unique_ptr<void, void(*)(void*)>(new f_t(std::move(f)), [](void* ptr) {
delete static_cast<f_t*>(ptr);
});
}
A
template <class... Args>
std::unique_ptr<void, void(*)(void*)> erase_type(std::function<void(Args...)> f) {
using f_t = std::function<void(Args...)>;
return std::unique_ptr<void, void(*)(void*)>(new f_t(std::move(f)), [](void* ptr) {
delete static_cast<f_t*>(ptr);
});
}
АК
std::any
и класть в него std::function
?any
"на минималках" - костыльНТ
НТ
auto pszCmdLine = std::make_unique<wchar_t[]>(MAX_PATH);
StringCchPrintfW(pszCmdLine.get(), MAX_PATH,
L"\"%s\" \"%s\\CroBank.dat\"",
s_CroReader.c_str(), GetPath());
НТ
A
НТ
НТ
IZ
НТ
ПК
ПК
wchar_t pszCmdLine[MAX_PATH]
делает то же самое, только без дин. аллокации. Так что у тебя плохой пример