91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++怎么使用指向實現的指針技術獲得穩定的ABI

發布時間:2021-11-26 13:59:43 來源:億速云 閱讀:154 作者:iii 欄目:大數據

本篇內容介紹了“C++怎么使用指向實現的指針技術獲得穩定的ABI”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

I.27: For stable library ABI, consider the Pimpl idiom(考慮使用指向實現的指針技術獲得穩定的ABI)

Reason(原因)

私有數據成員參與(內存上的)類布局,私有成員函數參加重載判斷,因此改變這些實現細節需要重新編譯類的所有用戶。一個非多態的接口類管理一個指向實現的指針(Pimpl)可以通過一次間接訪問的代價消除修改類實現對類用戶的影響。

譯者注:形式上很像橋接模式,但目的是為了隱藏而不是多態。

Example(示例)

interface (widget.h)

class widget {    class impl;    std::unique_ptr<impl> pimpl;public:    void draw(); // public API that will be forwarded to the implementation    widget(int); // defined in the implementation file    ~widget();   // defined in the implementation file, where impl is a complete type    widget(widget&&) = default;    widget(const widget&) = delete;    widget& operator=(widget&&); // defined in the implementation file    widget& operator=(const widget&) = delete;};

implementation (widget.cpp)

class widget::impl {    int n; // private datapublic:    void draw(const widget& w) { /* ... */ }    impl(int n) : n(n) {}};void widget::draw() { pimpl->draw(*this); }widget::widget(int n) : pimpl{std::make_unique<impl>(n)} {}widget::~widget() = default;widget& widget::operator=(widget&&) = default;
    Notes(注意)

See GOTW #100 and cppreference for the trade-offs and additional implementation details associated with this idiom.

關于這個用法平衡考慮和另外的實現細節可以參考GOTW #100和cpprefernce網站。

Enforcement(實施建議)

(Not enforceable) It is difficult to reliably identify where an interface forms part of an ABI.

(無法強制)很難可靠地識別哪里的接口定義會成為ABI的一部分。

譯者注:也就無法決定是否需要提示用戶。

“C++怎么使用指向實現的指針技術獲得穩定的ABI”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

澎湖县| 古田县| 蓝田县| 洛扎县| 南康市| 铁力市| 平阳县| 乐清市| 灵丘县| 尼玛县| 三门峡市| 九台市| 肇东市| 绥江县| 沙雅县| 上饶市| 嘉祥县| 隆昌县| 专栏| 乌兰浩特市| 米泉市| 武安市| 蛟河市| 明水县| 平谷区| 溧水县| 延吉市| 十堰市| 洛阳市| 邵阳县| 四川省| 屯昌县| 石嘴山市| 安泽县| 沙雅县| 浦县| 湖北省| 沁源县| 岗巴县| 富裕县| 巴塘县|