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()被调用数千次,我认为它是有用的“内联