Boost logo

Boost Users :

From: dick.bridges_at_[hidden]
Date: 2002-09-26 16:16:01


<datapoints>
MSDN January 2002 contains only the 'old' level 1 definition.
Q113417 from that same source says the compiler generates the warning with
both the /Ze and /Za switches.
The 'online' MSDN contains only the level 3 definition.
You're running SP3 and I'm running SP5.
</datapoints>

THEREFORE:

#pragma warning(disable : 4097) // ;)
#include <boost/function.hpp>
#pragma warning(default : 4097)

Thanks for the input.

                                                                                                                                      
                      "Jim.Hyslop"
                      <jim.hyslop_at_leit To: "'Boost-Users_at_[hidden]'" <Boost-Users_at_[hidden]>
                      ch.com> cc:
                                               Subject: RE: [Boost-Users] bind: I just keep trying...
                      09/26/2002 01:01
                      PM
                      Please respond
                      to Boost-Users
                                                                                                                                      
                                                                                                                                      

dick.bridges_at_[hidden] [mailto:dick.bridges_at_[hidden]] wrote:
> Well, that helped A LOT. The only warnings I get now are:
>
> <warnings>
> c:\boost\function.hpp(451) : warning C4097: typedef-name
> 'base_type' used
> as synonym for class-name
> 'function<R,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10>::function1<R,T0,
> `template-parameter268',`template-parameter269',`template-para
> meter270'>'

> The warning level is 4: I'm paranoid. Can these safely be ignored?

According to the MSDN:

---------------- begin quote from MSDN -----------------------------
Compiler Warning (level 3) C4097

typedef-name 'identifier1' used as synonym for class-name 'identifier2'

A typedef name which names a class is itself a class name. However, only a
class declared without a tag can be named. In the following line of code
the
typedef name P is promoted to class name but Q is not.

typedef struct { int member; } P, Q;

Q remains a normal typedef name and a synonym for the class.

The following example causes this warning:

typedef struct _T
{
    int i;
} T;

struct U : T
{
    int j;
}; // warning

struct V : _T
{
    int j;
}; // OK

------------------------ end quote from MSDN -------------------------

However, when I tried compiling the example, MSVC6 SP3 at warning level 4
was completely silent. So I'm really confused now - is it a problem or not?
My instinct says no, but I've been wrong before.

--
Jim
Info: <http://www.boost.org>
Wiki: <http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl>
Unsubscribe: <mailto:boost-users-unsubscribe_at_[hidden]>
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net