有没有一种简单的方法来检查我的模板是否已经过优化?使用#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; }
}
答案 0 :(得分:5)
除了看集会之外别无他法。它可以“优化”的唯一方法是内联这些功能,你只能通过查看源来检查它。
话虽如此,在任何现代编译器中,您都可以确定这些函数将在优化代码中内联。