Akira TAGOH
at****@gclab*****
2006年 3月 27日 (月) 18:23:34 JST
たごうです。 >>>>> On Sun, 26 Mar 2006 22:52:12 +0900, >>>>> "AI" == AWASHIRO Ikuya <ikuya****@oooug*****> wrote: AI> どもども。いくや@霞のコミット権もらった です。 AI> 表題のとおりですが、霞をGCC 4.1でmakeするとエラーが出ます。 AI> Debianでその修正パッチをもらい、ついでに霞のコミット権ももらったのでcvs AI> にコミットしておきました。 AI> 差分は以下のとおりです。 AI> http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/kasumi/kasumi2/KasumiAddWindow.hxx?r1=1.9&r2=1.10 AI> http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/kasumi/kasumi2/KasumiMainWindow.hxx?r1=1.23&r2=1.24 AI> 実のところ4.1でテストしてませんが、4.0.3でも3.3.5でも問題ありませんでした。 AI> Fedora Core 5ではたごうさんが別な(そしてスマートな)修正をなさってます AI> が、こちらの方式だと4.0でエラーになるので、現状では霞本体に取り込むのは AI> あまり得策でないと勝手に思っています(作者さんに確認していません)。 それでいいと思います。-ffriend-injectionはgcc 4.1から登場し たもので、後方互換のために存在しています。当時あまり時間がと れなかったので、もっとも手っ取り早くbuildを通す方法をとった だけなので。なお、 -ffriend-injection Inject friend functions into the enclosing namespace, so that they are visible outside the scope of the class in which they are declared. Friend functions were documented to work this way in the old Annotated C++ Reference Manual, and versions of G++ before 4.1 always worked that way. However, in ISO C++ a friend function which is not declared in an enclosing scope can only be found using argument dependent lookup. This option causes friends to be injected as they were in earlier releases. This option is for compatibility, and may be removed in a future release of G++. と、あるので、使わないにこしたことはないと思います。 -- Akira TAGOH