variadic argümanlarla bir fonksiyon kaydetmek için kullanılabilir Mevcut sistem durumuna bağlı olarak farklı işlevleri çeşitli geri çağrılara bağlayarak; iyi çalışıyor. örneğin,std Can :: fonksiyonunu ben geri arama fonksiyonları bir demet içeren başvurumun etrafında geçmesi bir yapıya sahip
std::function<int (const char * format, ...)> printToStdOut;
Bu değil çalışır: Şimdi yapmak istiyorum ne
benzer printf'e bağımsız değişken sayıları içeren imzalarla ekstra geri aramaları bir çift eklemektir. C++ sözdizimi bu alanı üzerinden
error C2027: use of undefined type 'std::_Get_function_impl<_Fty>'
Hala yolumu hissediyorum ve çok Buradan devam etmelidir konusunda herhangi bir tavsiye takdir ediyorum: Visual C++, ben bildiren bir hata iletisi alabilirsiniz. Sistem durumuna göre
myCallbackTable.printToStdOut("I've just eaten %d bananas\r\n", nBananas);
... ve çıkış bir dosyaya veya bir GUI penceresine, bir konsola yönlendirilmiş olması: My durduğu hedef çizgisinde bir çağrı yapmak mümkün olduğu .
o, bir [ 'std :: ostream' kullanmalıdır size ilgilenen sadece çıkış ise ] (http://www.cplusplus.com/reference/ostream/ostream/ostream/) bunun yerine. – nwp
'std :: function' yalnızca' R (ArgTypes ...) 'formundaki işlev türleri için tanımlanmıştır, burada' ArgTypes ...'bir tür parametre paketinin (yani, (muhtemelen boş) bir liste listesi) bir paket genişlemesidir. Yani, C stili değişken bir fonksiyona izin verilmez. –
AFAIK, değişken işlevler için std :: function işlevinin hiçbir özelleşmesi, burada [https://www.daniweb.com/software-development/cpp/threads/467086/stdfunction-with-several- veya-none-parameters # post2034402), ilgili olup olmadığından emin değil. – P0W