Bundan daha Finalizer
sınıfı yazmanın daha genel bir yolu var mı? MümkünEl ile sınıf şablon parametresi belirtiminden nasıl kurtulur
Finalizer finalizer([]() { std::cout << "str" << std::endl; });
mi:
istediğim#include <functional>
#include <iostream>
template <typename T>
class Finalizer
{
public:
Finalizer(const std::function<T>& f) : _f(f) {}
~Finalizer()
{
_f();
}
private:
std::function<T> _f;
};
int main()
{
Finalizer<void()> finalizer([]() { std::cout << "str" << std::endl; });
}
böyle kod yazmak edebilmek için manuel sınıf şablonu parametre şartname kurtulmak için?
? Veya varsayılan bir şablon parametresi 'typename T = void() 'verilsin mi? – Garf365
@ Garf365 Daha genel olması için. Bazı finalizer yöntemleri aslında hata kodlarını döndüren ayrı bir işlev olabilir ama ben bunları zaten 'Finalizer' sınıfında kullanmak istiyorum ve hata kodlarını yok sayıyorum. – FrozenHeart
@FrozenHeart 'std :: function' otomatik olarak yoksayılacak Sonuç, burada sorun yok. –
lisyarus