如何检查模板是否已编译出来?

时间:2011-06-04 14:44:55

标签: c++ templates optimization

有没有一种简单的方法来检查我的模板是否已经过优化?使用#define HIDE_IT后,播放的代码如下。我确定这段代码已经过优化,所以我从定义Property<SomeType>得到了0开销,但我想检查是否可能(没有进入汇编。在优化器通过后,普通代码很难读取)

template <class T>
class Property {
    T v;
    Property(Property&p) { }
public:
    Property() {}
    T operator=(T src) {
        v = src; return v; 
    }

    operator T() const { 
        return v;
    }
    T operator->() { return v; }
    T operator++() { return ++v; }
    template<class U>
    T operator+=(U u) { return v+=u; }
    T get() { return v; }
}

1 个答案:

答案 0 :(得分:5)

除了看集会之外别无他法。它可以“优化”的唯一方法是内联这些功能,你只能通过查看源来检查它。

话虽如此,在任何现代编译器中,您都可以确定这些函数将在优化代码中内联。