'stringToIdentity'is not a member of'Ice'解決策


iceというオープンソースの分散ミドルウェアの応用を理解する過程で、現在の漢化のチュートリアルはまだ1.3.0バージョンにすぎないため、現在絶えずアップグレードされたiceバージョンはすでに多くの修正がある.stringToIdentity関数の呼び出しに遭遇すると、1.3.0のチュートリアルは次の形式で使用されます(これはチュートリアルのファイルシステムサービス側のコードに表示されます).テスト環境は新しいバージョンなので、コンパイルできない場合があります.
Ice::Identity myID = Ice::stringToIdentity(parent? IceUtil::generateUUID(): "RootDir");

ヒント:
error: 'stringToIdentity' is not a member of 'Ice'

Googleはこの情報を見て、多くの人がこの問題にぶつかったことを発見して、最後に公式フォーラムの上の1つの招待状を調べて、やっとこの問題を明らかにして、多分:Ice::stringToIdentityの形式を使って、また含みます:Ice/IndentityUtil.hヘッダファイルですが、stringToIdentity()メソッドは、後で新しいバージョンでCommunicatorインタフェースに移動して実装されます.このヘッダファイルを先に導入しようとすると、コンパイルはパスできますが、次のように表示されます.
  :‘stringToIdentity’    (  /usr/include/Ice/IdentityUtil.h:18   )

最新のチュートリアルによると、Ice-3.2.1.pdf英語ドキュメントのコードは次のとおりです.
Ice::Identity myID = _adapter.getCommunicator()->stringToIdentity(parent? IceUtil::generateUUID(): "RootDir");

正常にコンパイルできません.最後にコードのみを次のように変更できます.
Ice::Identity myID = _adapter->getCommunicator()->stringToIdentity(parent? IceUtil::generateUUID(): "RootDir");

やっとコンパイルできます.
変換元:http://blog.chinaunix.net/uid-43642-id-2124582.html