相关疑难解决方法(0)

为什么gcc不能内联可以确定的函数指针?

以下程序在带有-O3的centos上的gcc 4.6.2下编译:

#include <iostream>
#include <vector>
#include <algorithm>
#include <ctime>
using namespace std;

template <typename T>
class F {
public:
     typedef void (T::*Func)();

     F(Func f) : f_(f) {}

     void operator()(T& t) {
         (t.*f_)();
     }
private:
     Func f_;
};

struct X {
    X() : x_(0) {}

    void f(){
        ++x_;
    }

    int x_;
};

int main()
{
     const int N = 100000000;
     vector<X> xv(N);
     auto begin = clock();
     for_each (xv.begin(), xv.end(), F<X>(&X::f));
     auto end = clock();
     cout << end - begin << …
Run Code Online (Sandbox Code Playgroud)

c++ gcc

8
推荐指数
2
解决办法
3369
查看次数

标签 统计

c++ ×1

gcc ×1