rvalue-reference

    0熱度

    1回答

    我試圖寫的有效方法,以將圖像分配(一個QImage的 - Qt5.3)到我的類的成員變量: void ImageView::setImage(QImage&& image){ std::cout << &image << std::endl; _image = image; //_image = std::move(image); std::cout <

    6熱度

    3回答

    我在C++中使用了std::move和std::forward。我的問題是:標準庫如何實現這些功能? 如果左值是可以獲取地址的值,而右值不是左值,那麼您如何實際實現這些引用? 做這些新設施允許這樣的事情: auto x = &(3); 或類似的東西?你可以得到一個右值不只是返回的左值的參考值嗎? 希望這些問題有意義。我無法在Google上找到好的信息,只需完善轉發教程等。

    2熱度

    2回答

    我目前正試圖讓libC++編譯並使用MSVC運行。在這樣做的過程中,我遇到了一個令人討厭的bug(至少我認爲是一個bug),這讓我花了一段時間才搞定。我有以下的攝製代碼: int globalInt = 666; class mini_move_iterator { public: mini_move_iterator(int* i) : __i(i){} int&

    0熱度

    3回答

    假設我正在創建一個類client。我想client能夠以下幾類構成: client(const boost::network::uri::uri &, const boost::network::uri::uri &) client(const std::string &, const std::string &) client(const char *, const char *) 但是

    1熱度

    1回答

    我有這樣的代碼,嘗試的模板參數完美轉發通過中間類裝入std::function: #include <functional> #include <vector> #include <algorithm> #include <iterator> #include <memory> #include <iostream> template <typename ...Arguments>

    0熱度

    1回答

    我有以下聲明一個類: class IcoSphere { [...] private: int _addVertex(const glm::vec3 &p); int addVertex(glm::vec3 p); int addVertex(const glm::vec3 &&p); [...] }; 然後,我打電話「addVertex」,像這樣: I

    8熱度

    1回答

    我正在學習最新的C++ 11功能。但是,我並不完全瞭解有關rvalues的一件事。 考慮下面的代碼: string getText() { return "Fabricati diem"; } string newText = getText(); 電話getText()創建其被複制到newText可變的r值。但是,這個右值存儲在哪裏?複製後會發生什麼?

    6熱度

    2回答

    我想知道我是否可以在ostream中使用snprintf格式,這樣我就可以在流表達式本身中嵌入對snprintf的調用。這在GCC 4.9編譯,但它可以嗎? cout << [](char (&&buf) [12], int d) { snprintf(buf, 12, "%d", d); return buf; } ({ }, 15) << endl;

    1熱度

    1回答

    當我嘗試編譯下面包含的代碼時,我注意到了一個奇怪的行爲。我有4個文件如下 createshared.h: #ifndef CREATESHARED_H_ #define CREATESHARED_H_ #include <memory> #include <utility> #ifdef USE_REFREF template<typename T, typename... Args

    5熱度

    1回答

    下面的代碼不會如市場預期,不會編譯 #include <iostream> class A { public: A() = default; ~A() = default; A(const A&) = delete; A(A&&) = delete; A& operator=(const A&) = delete;