我有一個Visual Studio 2008的C++ 03應用程序,我想使用boost :: lambda來執行此操作:與方法,用升壓lambda表達式
enum { fooflag = 0x00000001; }
bool IsFooFlagActive(DWORD flags)
{
return (flags & fooflag) != 0;
}
不幸的是,這並不工作:
namespace bl = boost::lambda;
bool is_foo_flag_active = ((bl::_1 & fooflag) != 0)(0x00000001);
獲得boost :: lambda來執行復合表達式的正確方法是什麼?我是否需要綁定!=運算符?
感謝
爲什麼fooFlag是枚舉而不是DWORD? –
@AlessandroPezzato:因爲定義一個枚舉類型保證不使用任何存儲;對於整型類型也是如此,即使它們是「靜態常量」。 – ildjarn
@ildjarn謝謝你,純粹的好奇:) –