''[[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