2017-12-09 45 views
1

"priority_queue_example.cpp"をビルドしようとすると、私のpriority_queueが宣言されている行の "priority_queue_example.h"を指し示すこれらの警告(およびエラー)が発生します。boost :: priority_queueの警告

mutable boost::heap::priority_queue<myObject*, boost::heap::compare<myObjectPtrCompare> > hp; 

が、私はこれが何を意味するのかわからない、と警告は、

1> priority_queue_example.cpp 
1>c:\Projects\lib\boost\boost\heap\detail\stable_heap.hpp(102): error C2220: warning treated as error - no 'object' file generated 
1>c:\Projects\lib\boost\boost\heap\detail\stable_heap.hpp(102): warning 
C4100: 'rhs' : unreferenced formal parameter 
1>   c:\Projects\lib\boost\boost\heap\detail\stable_heap.hpp(102) : while compiling class template member function 'boost::heap::detail::size_holder<false,size_t>::size_holder(const boost::heap::detail::size_holder<false,size_t> &)' 
1>   c:\Projects\lib\boost\boost\heap\detail\stable_heap.hpp(189) : see reference to function template instantiation 'boost::heap::detail::size_holder<false,size_t>::size_holder(const boost::heap::detail::size_holder<false,size_t> &)' being compiled 
1>   c:\Projects\lib\boost\boost\heap\detail\stable_heap.hpp(151) : see reference to class template instantiation 'boost::heap::detail::size_holder<false,size_t>' being compiled 
1>   c:\Projects\lib\boost\boost\heap\priority_queue.hpp(65) : see reference to class template instantiation 'boost::heap::detail::heap_base<T,myObjectPtrCompare,false,unsigned __int64,false>' being compiled 
1>   with 
1>   [ 
1>    T=myObject * 
1>   ] 
1>   c:\Projects\priority_queue_example.h(193) : see reference to class template instantiation 'boost::heap::priority_queue<myObject *,boost::heap::compare<myObjectPtrCompare>,boost::parameter::void_,boost::parameter::void_,boost::parameter::void_>' being compiledcompare<ObjectPtrCompare>,boost::parameter::void_,boost::parameter::void 

マイPRIORITY_QUEUEが宣言されています。これを修正できますか?

これは私の比較クラスが定義され、

struct myObjectPtrCompare 
{ 
    bool operator()(const myObject* lhs, const myObject* rhs) const 
    { 
     return (lhs->getProp() < rhs->getProp()); 
    } 
}; 

答えて

1

ブーストは、警告のないされていない/ W4と。つまり、あなたのコードがcorectであっても、偽の警告が出る可能性があります。ソリューションエクスプローラでhttps://docs.microsoft.com/en-us/visualstudio/ide/how-to-suppress-compiler-warnings

  1. をあなたは警告を抑制するプロジェクトやソースファイルを選択します。

    あなたはこの記事に指定されている特定の警告を無効にすることができます。

  2. メニューバーで、[表示]、[プロパティページ]を選択します。

  3. [設定プロパティ]カテゴリを選択し、[C/C++]カテゴリを選択して[詳細設定]ページを選択します。

  4. は、次のいずれかの手順を実行します。無効に特定の警告ボックスで

    • を、セミコロンで区切って、あなたが抑制したい警告のエラーコードを指定します。

    • [特定の警告を無効にする]ボックスで、[編集]を選択して他のオプションを表示します。

  5. [OK]ボタンを選択し、ソリューションを再構築します。