0
学問的な問題として、バインドテンプレート(boost :: lambdaのesp)を使用してライニングを防止していますか?もしそうなら、宣言されたファンクタを使用する以外に、ライニングを防止しない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のコピーは、必ずしもそうではないが、関数ポインタの存在下でインライン化することができる。正確に何を期待していますか? –