''[[FrontPage]]''
* /clrオプションでregex++を利用する場合に [#me815112]
マネージド/ネイティブ混合コードにて、vararg(可変引数)に起因するエラーメッセージ(C4793/W3)に対応する。~
原因となっているshared_ptr.hppの該当箇所について、以下のように書き換える。~

** 制約事項 [#aa7f426f]
警告を最大のレベル4(/W4)にしてコンパイルした場合にも、C4100とC4189以外のエラーメッセージが0となること。~
~
~
ファイル名:shared_ptr.hpp
 /* This is OK for me ******************************************//*  /W3 vararg警告対応                            */
 #ifdef _MANAGED
 struct sp_any_pointer 
 { 
     template<class T> sp_any_pointer( T* ) {} 
 }; 
 
 inline void sp_enable_shared_from_this( shared_count const & /*pn*/, 
 sp_any_pointer, sp_any_pointer ) 
 { 
 } 
 
 #else // NOT managed. 
 #ifdef sgi
 // Turn off: the last argument of the varargs function "sp_enable_shared_from_this" is unnamed
 # pragma set woff 3506
 #endif
 inline void sp_enable_shared_from_this( shared_count const & /*pn*/, ... ) 
 { 
 } 
 
 
 #ifdef sgi 
 # pragma reset woff 3506 
 #endif 
 
 
 #endif // _MANAGED 
 //*This is OK for me ******************************************//*  /W3 vararg警告対応                            */

*** 修正履歴 [#z7573e00]
~

*** 課題 [#w775db7d]
以下の概念を、管理人自身がいまいち理解してない。~
+マネージド/ネイティブコード~
+可変引数(vararg)~
+/clr, /clr:pure~
~
こんな強引なやり方でエラーを潰して問題ないのかもよく分かってない。~

-備考~
もちろん、shared_ptr.hppの内容はバージョンによって異なるので、個別に対応が必要。~
参考にするときは、管理人の自己満足に付き合う程度の感覚でお願いします。~

*** 参考ページ [#p731f491]
http://lists.boost.org/Archives/boost/2007/01/115623.php

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS