0
作爲學術興趣的問題,是否使用綁定模板(尤其是在boost :: lambda中)防止內聯?如果是這樣,除了使用聲明的函數外,是否有一個boost :: lambda表單不阻止內聯? (特別是在最新版本的gcc中)boost :: lambda :: bind表達式是否阻止了內聯/是否存在一個不可用的替代形式?
namespace bll = boost::lambda;
class MyItem
{
public:
float attribute() { return 4; }
}
struct AttributeLessConst
{
AttributeLess(float value_a) : value(value_a) {}
bool operator()(const MyItem & a)
{
return a.attribute() < value;
};
const float value;
}
std::list<MyItem> myList;
remove_if_seq(myList, AttributeLessConst(1.5)); // in-linable // yes
remove_if_seq(myList, bll::bind(&MyItem::attribute, *bll::_1) < 1.5); // yes?
採取了一點,但文檔使用非常簡單的例子,不使用函數指針。 – Catskul
@Catskul我的GCC副本可以內聯函數指針,但並非總是如此。你期望什麼? –