Dear Filip, these warnings you only get when using -Wall, right? So with normal defaults you should not get any warnings. If you want to switch them off, use -wd4251. I am rather reluctant to add the pragmas as this clutters the code.
As it comes to Pimpl, I am not convinced that this is really an issue for us. Our interfaces can change, that's okay. Why pay for a level of indirection then. BTW: it used to be Pimpl before. The problem with DLL linkage in general is that you can't get it warning free for all compilers on Windows... Cheers Christian -- Christian Schulte, http://www.imit.kth.se/~schulte/ -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Filip Konvicka Sent: Monday, August 27, 2007 9:04 AM To: [EMAIL PROTECTED] Subject: [gecode-users] msvc 8.0 SP1 warning C4251 Hi, simply including Gecode 1.3.1 headers (kernel.hh, int.hh, search.hh) caused the C4251 warning. Looking at the class definitions, I see the warning can be safely ignored, but it might still be worth wrapping the definitions in a #pragma warning(push) + #pragma warning(disable : 4251) + #pragma warning(pop) block. BTW, did you consider using the pimpl idiom to hide the *Engine implementation classes? Why are the engine members "protected" and not "private", anyway? (Deriving from Gecode::Search::DFS would make this non-dll-export class accessible, wouldn't it?) I know that this is all a bit of hair-splitting.... :-) Cheers, Filip 1>c:\program files\gecode\include\gecode\search.hh(360) : warning C4251: 'Gecode::Search::DFS::e' : class 'Gecode::Search::DfsEngine' needs to have dll-interface to be used by clients of class 'Gecode::Search::DFS' 1> c:\program files\gecode\include\gecode\search.hh(318) : see declaration of 'Gecode::Search::DfsEngine' 1>c:\program files\gecode\include\gecode\search.hh(481) : warning C4251: 'Gecode::Search::LDS::e' : class 'Gecode::Search::ProbeEngine' needs to have dll-interface to be used by clients of class 'Gecode::Search::LDS' 1> c:\program files\gecode\include\gecode\search.hh(428) : see declaration of 'Gecode::Search::ProbeEngine' 1>c:\program files\gecode\include\gecode\search.hh(607) : warning C4251: 'Gecode::Search::BAB::e' : class 'Gecode::Search::BabEngine' needs to have dll-interface to be used by clients of class 'Gecode::Search::BAB' 1> c:\program files\gecode\include\gecode\search.hh(543) : see declaration of 'Gecode::Search::BabEngine' _______________________________________________ Gecode users mailing list [EMAIL PROTECTED] https://www.gecode.org/mailman/listinfo/gecode-users _______________________________________________ Gecode users mailing list [EMAIL PROTECTED] https://www.gecode.org/mailman/listinfo/gecode-users
