Subject: C++ problem: building "pkgsrc/audio/daapd" with GCC 4.x
To: None <tech-pkg@NetBSD.org>
From: Matthias Scheler <tron@zhadum.org.uk>
List: tech-pkg
Date: 06/30/2006 22:04:11
	Hello,

I'm trying to get the "daapd" package to build with GCC 4.x on my
NetBSD-current system but have found the proper fix so far.
The build dies here:

g++ -Wall -Wno-multichar -I../include -c registry.cpp
registry.cpp: In static member function 'static void TypeRegistry::registerVar(const TypeRegistry::Var*)':
registry.cpp:134: error: 'end' was not declared in this scope
registry.cpp: In constructor 'TypeRegistry::Init::Init()':
registry.cpp:143: error: 'end' was not declared in this scope
gmake[1]: *** [registry.o] Error 1
gmake[1]: Leaving directory `/src/NetBSD-current/pkgsrc/audio/daapd/work/daapd-0.2.4b/daaplib/src'

This is the piece of code which GCC whines about:

void TypeRegistry::registerVar( const Var* var ) {
        varMap[var->name] = var;
        container << Tag( 'mdcl' ) <<
                Tag( 'mcnm' ) << var->mnemonic  << end <<
                Tag( 'mcna' ) << var->name      << end <<
                Tag( 'mcty' ) << (u16)var->type << end <<
        end;
}

I'm not sure where the declaration of "end" is supposed to come from.
The only definition I can find are various STL containers which
define a end() method.

Any hints?

	Kind regards

-- 
Matthias Scheler                                  http://scheler.de/~matthias/