reference-wrapper

    3熱度

    1回答

    雖然望着std::reference_wrapper here 的建設者和經營者的實施是顯而易見的我,但我不明白這部分 template< class... ArgTypes > typename std::result_of<T&(ArgTypes&&...)>::type operator() (ArgTypes&&... args) const { return std

    -1熱度

    2回答

    在下面的代碼中,無論何時將新成員插入std::vector<int>A,由於內存重新分配,std::vector<reference_wrapper<int>>B都指向錯誤的地址。是否有可能使引用向量跟蹤重新分配並始終保存正確的地址? #include <iostream> #include <functional> #include <vector> using namespace std

    0熱度

    1回答

    我需要在C++中使用存儲在向量中的對象的多態性。 從其他問題了解,矢量中的對象需要通過引用存儲,因爲否則會發生對象切片。 我的理解是,std :: reference_wrapper會非常合適,但是我遇到了一些實現它的問題。 ActorRecordingItem是基類和ActorVehicleEnterRecordingItem是 class ActorRecordingItem { prote

    3熱度

    2回答

    我怎樣才能比較兩個std::reference_wrapper他們持有的參考?我想看看兩個std::reference_wrapper的引用是否相等。 編輯:混淆抱歉。我的意思是如何獲取指示對象的地址並進行比較。

    -2熱度

    2回答

    在下面的代碼,push_back()一個std::ref成std::vector<reference_wrapper<Type>>效果很好但是,分配std::ref到reference_wrapper<Type>不起作用。爲什麼? #include <iostream> #include <vector> #include <functional> using namespace std;

    0熱度

    1回答

    問題: 假設一個函數 void doFoo(const std::vector<std::reference_wrapper<DataT> >& data); 其中DataT是某種類型的保持某些數據。我只是將std::vector作爲容器類的典型示例。 你會說什麼是用std::vector<DataT>來調用上述函數的最優雅方式? 背景: 裏面的功能doFoo(...)我不想取數據的所有權。因

    3熱度

    2回答

    我有一個vector的一些參考類型reference_wrapper包裝。因爲我需要填寫這個容器壞了我正在嘗試設置爲容器的初始大小: vector<std::reference_wrapper<T>> v(5); v[3] = .. v[2] = .. v[4] = .. v[5] = .. v[1] = .. 這種失敗,就像一個錯誤編譯: error: no matching f

    1熱度

    1回答

    我正在設計一個類似C++引用的類,但是會執行一些額外的工具(簿記)。 最初我以爲std::reference_wrapper<T>將是一個很好的模型。但過了一段時間後,我意識到std::reference_wrapper<T>即使原則上也不會作爲C++引用行爲,因爲賦值會重新綁定內部指針。 double a = 5.; double b = 3.; double& ref =

    0熱度

    5回答

    我的印象是,我可以使用reference_wrapper來生成一個函子,它將返回傳入reference_wrapper ctor的對象。但是這不起作用。我做錯了嗎?如果是的話,是否有更好的方法來完成這個?我可以寫一個拉姆達,這看起來像我不應該。 #include <iostream> #include <functional> using namespace std; void funPt

    3熱度

    1回答

    我無法弄清楚如何使用std::reference_wrapper將std::string引用轉換爲std::unordered_map。根據以下鏈接,我瞭解我需要超載operator==。 Why can template instances not be deduced in `std::reference_wrapper`s? 但是,我無法弄清楚如何寫operator==這樣,這將需要一個常量