2009-08-14 125 views
0

我使用鳳::綁定和接收此錯誤消息:錯誤升壓鳳::綁定編譯

錯誤C2039:「綁定」:不是「鳳」

的成員

的代碼行,其中我使用綁定並且其中所述錯誤指向是:

鳳::綁定( & OptionalInputPort :: eraseDataEditor) (phoenix :: var(* optionalPort))

我不知道是什麼問題。

鳳包括是這一行:#包括升壓/精神/家庭/ phoenix.hpp

感謝。

回答

1

phoenix命名空間是boost命名空間(就像一切都在加速其他)。

boost::phoenix::bind(&OptionalInputPort::eraseDataEditor) (boost::phoenix::var(*optionalPort)) 

爲了避免所有打字,你可以用這篇序言的C++文件來創建一個命名空間別名

namespace phoenix = boost::phoenix; 

然後你原來的代碼應工作。如果您使用bind很多,你可以告訴你的編譯器,當你說bind,你指的是一個在boost::phoenix

using boost::phoenix::bind; 

如果您使用很多東西從鳳凰城,你可以只引入該命名空間中的所有內容,儘管這會帶來意想不到的後果,因爲它會包含您甚至不知道存在的內容,並且可能會干擾您自己的代碼。

using namespace boost::phoenix;