_MSC_VER not defined on mingw32
I downloaded and unzipped the latest boost (1.30.0) and tried using it
in a simple file like this:
#include
omnizionic wrote:
I downloaded and unzipped the latest boost (1.30.0) and tried using it in a simple file like this:
#include
int main() { boost::shared_ptr<int> p(new int); return 0; }
I compiled it, and got the following output: gcc -c -Wall -W -Werror -Wundef -Wfloat-equal -Wshadow -Wpointer-arith -Wcast-qual -Wwrite-strings -Wconversion -idirafter c: /programming/lib/kakefisk -Ic:/programming/boost_1_30_0 -O3 -fomit-frame-pointer -ffast-math btest.cpp -o btest.o In file included from c:/programming/boost_1_30_0/boost/scoped_ptr. hpp:16, from c:/programming/boost_1_30_0/boost/smart_ptr.hpp: 17, from btest.cpp:1: c:/programming/boost_1_30_0/boost/checked_delete.hpp:4:5: "_MSC_VER" is not defined
The problem is caused by -Wundef generating a warning for the #if _MSC_VER >= 1020 test, and by -Werror turning that warning into an error. I'll fix the CVS version of smart_ptr to compile cleanly under -Wundef; in the meantime you could either drop -Wundef or change the above lines to #if defined(_MSC_VER) && (_MSC_VER >= 1020)
--- In Boost-Users@yahoogroups.com, Gennaro Prota
On Thu, 12 Jun 2003 20:02:19 +0300, "Peter Dimov"
wrote: I'll fix the CVS version of smart_ptr to compile cleanly under -Wundef;
Hmm... our BOOST_WORKAROUND has the same "problem" and we can't write it in terms of the defined operator.
Genny.
I just noticed this myself. Boost is forcing me to remove -Wundef from my makefile. It's not the most important compiler warning, but I would like to have it enabled nevertheless.
participants (3)
-
Gennaro Prota
-
omnizionic
-
Peter Dimov