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

1 c++ optimization templates

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

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; }
}
Run Code Online (Sandbox Code Playgroud)

Pet*_*der 5

除了看装配之外别无他法.它可以"优化"的唯一方法是内联这些功能,你只能通过查看源来检查它.

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