inlining

    4熱度

    1回答

    非常新的C++。 這裏是我的用戶定義的類fmiNode(fmi.h) class fmiNode { public: fmiNode(std::string NodeName,int Address) { this->name = NodeName; this->address = Address; } std::string

    3熱度

    2回答

    有沒有辦法在Visual Studio中執行「提取方法」重構的相反方法? 我有一個遺留的代碼庫,有大約50個非常短的私有函數,每個函數只使用一次,而且我的任務是內聯它們。 如果自動內聯重構不可行,是否可以減少內聯這些函數調用所花費的時間?我目前的工作流程是: 複製函數中的代碼。 找到它被調用的地方。 將函數調用替換爲複製的代碼。 從函數中替換局部變量名稱。 刪除該功能。

    3熱度

    2回答

    我正在編寫一個侵入式數據結構並想知道是否使用基本掛鉤或成員掛鉤。由於代碼將被多次調用,因此我的問題是關於性能以及編譯器能夠在多大程度上嵌入此類代碼。 基本鉤子基於繼承,而成員鉤子通過模板參數使用指向成員的指針。 我的設計選擇是使用成員鉤子,但我的經驗說指針比靜態代碼更難以優化。另一方面,所有這些指針在編譯時都是已知的,也許編譯器可以做一些魔術來分析發生了什麼。 有沒有人有這方面的經驗?任何數據,提

    2熱度

    2回答

    假設有這樣的C#代碼: const string ABC = "ABC"; const string XYZ = "XYZ"; var result = ABC + ":" + XYZ; 這樣的代碼由編譯器優化,所以你有一個恆定的字符串文字:在結果變量「ABC XYZ」,而不是做3串的實際級聯在運行時。 現在,我要介紹一個輔助功能,將隱藏來自用戶的連接(使代碼更健壯且不易出錯): [Me

    5熱度

    4回答

    考慮一個功能對象F服用constexpr size_t參數I struct F { template <size_t I> constexpr size_t operator()(size <I>) const { return I; } }; 纏繞的類型size <I>內,其中(爲了簡潔) template <size_t N> using size = std::

    1熱度

    1回答

    是否有可能在構建設置中允許在調試版本中內聯特定頭文件 ?我使用信號/委託模式很多,我在一個單獨的項目中測試。我希望我的主要項目不會在我打斷點時在調用堆棧中顯示回調的信號/委託部分。是否有可能允許在頭文件庫中內聯函數,而不優化主項目,或者是否有其他方式來過濾從調用堆棧接口調用僅頭文件的庫。

    9熱度

    1回答

    的gcc documentation包含以下內容: 當一個函數內聯和靜態的,如果對 函數的所有調用都集成到調用,而該函數的地址是 從未使用過,那麼該函數自身的彙編代碼從未被 引用。在這種情況下,GCC實際上不會爲該函數輸出彙編代碼 ,除非您指定選項 -fkeep-inline-functions。由於各種原因,某些呼叫不能被集成(特別是,調用之前函數的定義 不能被集成,並且都不能在 定義內的遞歸調

    0熱度

    1回答

    當使用__forceinline或內聯內部類型時,是否必須在MSVC中包含頭文件中的定義?我聽到了這個不同的意見,通過不同的編譯器有所不同。 實施例1: //some_class.hpp class some_class { public: __forceinline void some_function(); inline void other_function();

    0熱度

    1回答

    我在where子句中有一個子查詢,它在每次評估時掃描整個表。 SELECT k, j FROM tab t1 WHERE t1.x > (SELECT AVERAGE(x) FROM tab t2 where t1.n = t2.n) order by k, j limit 100; 當我將OFFSET 0添加到子查詢的末尾時,查詢計劃沒有變化。 SELECT k, j FROM

    0熱度

    1回答

    我在互聯網上搜索了很多C++內聯,但似乎每個人都喜歡不同的實現方式。 我的問題如下所示: // header-file class Test { int i; public: int getI(); }; // source-file int Test::getI() { return i; } 由於此功能getI()被調用數千次,我認爲它是有用的「內聯