Pertanyaan yang diberi tag «std-function»

7
std :: function vs template
Berkat C ++ 11 kami menerima std::functionkeluarga pembungkus functor. Sayangnya, saya terus mendengar hanya hal-hal buruk tentang penambahan baru ini. Yang paling populer adalah mereka sangat lambat. Saya mengujinya dan mereka benar-benar payah dibandingkan dengan template. #include <iostream> #include <functional> #include <string> #include <chrono> template <typename F> float calc1(F f) …


3
Bagaimana cara memeriksa dengan benar apakah std :: function kosong di C ++ 11?
Saya bertanya-tanya bagaimana cara memeriksa dengan benar apakah std::functionkosong. Pertimbangkan contoh ini: class Test { std::function<void(int a)> eventFunc; void registerEvent(std::function<void(int a)> e) { eventFunc = e; } void doSomething() { ... eventFunc(42); } }; Kode ini dikompilasi dengan baik di MSVC tetapi jika saya memanggil doSomething()tanpa menginisialisasi eventFunckode tersebut jelas …


1
std :: function const correctness
Misalkan saya memiliki tipe callable seperti: struct mutable_callable { int my_mutable = 0; int operator()() { // Not const return my_mutable++; } }; Catatan yang mutable_callablememiliki non-const operator()yang memodifikasi variabel anggota ..... Sekarang anggaplah saya membuat std::functionkeluar dari tipeku: std::function<int()> foo = mutable_callable{}; Sekarang saya bisa melakukan ini: void invoke(std::function<int()> …

2
Panggilan ke lambda tidak jelas meskipun secara eksplisit menyatakan jenis pengembalian
Fungsi kelebihan beban harus mengambil kedua functors, mengingat jenis lambda adalah decidable (castable to a std::function (tolong perbaiki saya jika saya salah). Pertanyaannya adalah: Mengapa ada kesalahan kompilasi di bawah, meskipun jenis lambda secara eksplisit didefinisikan? ( [&]() -> Type {}) Harap dicatat, bahwa untuk solusi saya saat ini, saya …
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.