After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 310301 - Build failure in VC7.1 due to multiple 'internal' symbols (namespace/class)
Build failure in VC7.1 due to multiple 'internal' symbols (namespace/class)
Status: RESOLVED FIXED
Product: libsigc++
Classification: Bindings
Component: build
2.0.x
Other All
: High critical
: ---
Assigned To: Martin Schulze
Martin Schulze
: 312055 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2005-07-14 00:38 UTC by Bruno Martinez
Modified: 2005-08-01 06:41 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Renames class internal (1.75 KB, patch)
2005-07-20 02:40 UTC, Bruno Martinez
none Details | Review

Description Bruno Martinez 2005-07-14 00:38:26 UTC
Steps to reproduce:
The problem is that there's a class also named 'internal' in type_traits.h.  
Renaming this class solves the problem.

Stack trace:
Trying to build you will get:

..\sigc++\functors\slot_base.h(29) : error C2757: 'internal' : a symbol with 
this name already exists and therefore this name cannot be used as a namespace 
name

and similar errors for other sources.

The error is in file type_traits.h.  In a nutshell:

namespace sigc {
    struct is_base_and_derived {
        friend struct internal;
    };
}

namespace sigc {
    namespace internal {
    }
}

Comeau online doesn't like the code either.

Other information:
Comment 1 Murray Cumming 2005-07-14 07:59:06 UTC
Is this a new problem - did this work with previous versions?
Comment 2 Bruno Martinez 2005-07-14 18:17:12 UTC
I don't know.  This is the first version I try.
Comment 3 Murray Cumming 2005-07-19 15:16:44 UTC
Could you prepare a patch, please?
Comment 4 Bruno Martinez 2005-07-20 02:40:26 UTC
Created attachment 49437 [details] [review]
Renames class internal

Here is the patch.  I renamed the offending class.

I think the friend declaration is wrong.  It actually makes friend a never
defined class, in namespace sigc, and the program works without the
declaration.  I guess it's there _just_ to make Tru64 happy.
Comment 5 Jian Ji Xing 2005-07-30 14:51:49 UTC
*** Bug 312055 has been marked as a duplicate of this bug. ***
Comment 6 Murray Cumming 2005-08-01 06:41:46 UTC
Committed. Thanks.