[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Compilation problems (of esnacc 1.7) on Linux with gcc 3.4.3



Hello,
I am trying to build eSNACC 1.7 (with 1.7.3 patch applied) on my CentOS
4 Linux box:
Linux 2.6.9-11.EL #1 Wed Jun 8 16:59:52 CDT 2005 i686 i686 i386
GNU/Linux

With gcc 3.4.3:
gcc (GCC) 3.4.3 20050227 (Red Hat 3.4.3-22.1)

Initially I recieve an error that bits/fpos.h could not be found. 

In fact, this is correct for this system, there is no fpos.h. 

This diff gets around the compile error though,

--- asn-chartraits.h~   2003-03-20 06:43:00.000000000 -0800
+++ asn-chartraits.h    2005-09-21 17:13:32.000000000 -0700
@@ -2,7 +2,7 @@
 #define _asn_chartraits_h 1

 #include <cstring>     // For memmove, memset, memchr
-#include <bits/fpos.h>                 // For streampos
+#include <ios>                 // For streampos

 namespace std
 {

I'm not sure if this is the best header to choose to get streampos. A
quick grep in /usr/include/c++ finds a couple other potential choices
but all claim to be "internal" headers. Anyway, if there is a better
header to include let me know. If it should be wrapped in some kind of
platform or compiler #ifdef I can do that as well.

My next problems were related to use of some deprecated C++
functionality (according to g++).

Here is a snippet of build errors (they are basically all similar to
this error). I would be happy to send a full build log or config.log if
that would help.

<snippet>
make[3]: Leaving directory `/home/scott/src/SNACC/c++-examples/src'
make targets
make[3]: Entering directory `/home/scott/src/SNACC/c++-examples/src'
g++  -I../../c++-lib/inc -I../.. -I./ -I../src  -O2 -Wall -DSTDC_HEADERS
-fPIC -Wswitch -DLinux  -c -o rfc1155-smi.o rfc1155-smi.cpp
In file included from rfc1155-smi.h:13,
                 from rfc1155-smi.cpp:9:
../../c++-lib/inc/asn-listset.h: In member function `typename
std::list<T, std::allocator<_CharT> >::iterator AsnList<T>::append(const
T&)':
../../c++-lib/inc/asn-listset.h:24: error: there are no arguments to
`end' that depend on a template parameter, so a declaration of `end'
must be available
../../c++-lib/inc/asn-listset.h:24: error: (if you use `-fpermissive',
G++ will accept your code, but allowing the use of an undeclared name is
deprecated)
</snippet>


Anyway, I pasted another diff below that got it compiling. Let me know
if these changes should be made differently. I will run the test suites
next and then try and build the SMP.

cheers,
scott


--- asn-listset.h~	2004-03-31 12:03:19.000000000 -0800
+++ asn-listset.h	2005-09-22 12:32:23.776507520 -0700
@@ -21,7 +21,7 @@
 {
 public:
 	// Appends newly inserted element to list and returns its
iterator
-        typename std::list<T>::iterator append(const T& x = T())
{ return insert(end(), x); }
+        typename std::list<T>::iterator append(const T& x = T())
{ return insert(this->end(), x); }
 
 	// encode and decode routines
 	virtual SNACC::AsnLen PEnc(SNACC::AsnBufBits& b) const;
@@ -47,7 +47,7 @@
 //	virtual SNACC::SizeConstraint* SizeConstraints()
{ return NULL; }
 	
 	virtual void Allocate(long size)
{}
-	virtual void Clear()
{ clear(); }
+	virtual void Clear()
{ this->clear(); }
 	virtual SNACC::AsnLen Interpret(SNACC::AsnBufBits& b, long
offset) const;
 	virtual void Deterpret(SNACC::AsnBufBits& b, SNACC::AsnLen&
bitsDecoded,
 		long offset);
@@ -72,14 +72,14 @@
 {
 	FUNC("AsnList<T>::Interpret()");
 
-	typename AsnList<T>::const_iterator i = begin();
-	while ((i != end()) && (offset > 0))
+	typename AsnList<T>::const_iterator i = this->begin();
+	while ((i != this->end()) && (offset > 0))
 	{
 		++i;
 		--offset;
 	}
 
-	if (i != end())
+	if (i != this->end())
 		return i->PEnc(b);
 	else
 		throw SNACC_EXCEPT("Null element found in List");
@@ -97,19 +97,19 @@
 		SNACC::AsnLen sum = 0;
 		if (SizeConstraints()->upperBoundExists == 0)
 		{
-			if (size() != (unsigned int)
SizeConstraints()->lowerBound)
+			if (this->size() != (unsigned int)
SizeConstraints()->lowerBound)
 			{
 				throw EXCEPT("Number of elements in
AsnList does not match singlevalue constraint",
 					ENCODE_ERROR);
 			}
 
-			for (typename AsnList<T>::const_iterator i =
begin(); i != end(); ++i)
+			for (typename AsnList<T>::const_iterator i =
this->begin(); i != this->end(); ++i)
 				sum += i->PEnc(b);
         }
 		else if (SizeConstraints()->upperBoundExists == 1)
 		{
-			if ((size() < SizeConstraints()->lowerBound) ||
-				(size() >
SizeConstraints()->upperBound))
+			if ((this->size() <
SizeConstraints()->lowerBound) ||
+				(this->size() >
SizeConstraints()->upperBound))
 			{
 				throw EXCEPT("Number of elements in
AsnList is not within the size constraint",
 					ENCODE_ERROR);
@@ -128,7 +128,7 @@
 
 			long minBytesNeeded = minBitsNeeded / 8;
 			minBitsNeeded %= 8;
-			long numExtra = size() -
SizeConstraints()->lowerBound;
+			long numExtra = this->size() -
SizeConstraints()->lowerBound;
 			if (minBytesNeeded > 0)
 			{
 				pStr[0] = (unsigned char)(numExtra >>
minBitsNeeded);
@@ -143,20 +143,20 @@
 		}
 		else
 		{
-			if (size() < SizeConstraints()->lowerBound)
+			if (this->size() <
SizeConstraints()->lowerBound)
 			{
 				throw EXCEPT("Number of elements in
AsnList is below the minimum size constraint",
 					ENCODE_ERROR);
 			}
 			
-			SNACC::AsnInt listLen(size() -
SizeConstraints()->lowerBound);
+			SNACC::AsnInt listLen(this->size() -
SizeConstraints()->lowerBound);
 			sum += b.OctetAlignWrite();
 			listLen.PEnc(b);
 			sum += b.OctetAlignWrite();
         }
 
 		// Encode the elements
-		for (typename AsnList<T>::const_iterator i = begin(); i
!= end(); ++i)
+		for (typename AsnList<T>::const_iterator i =
this->begin(); i != this->end(); ++i)
 			sum += i->PEnc(b);
 
 		return sum;
@@ -168,7 +168,7 @@
 void AsnList<T>::PDec(SNACC::AsnBufBits& b, SNACC::AsnLen& bitsDecoded)
 {
 	// Remove existing elements
-	clear();
+	this->clear();
 
 	if (!SizeConstraints())
 	{
@@ -241,10 +241,10 @@
 char* AsnList<T>::checkSOfSingleVal(long m_SingleVal) const
 {
 	char* pError = NULL;
-	if (size() != m_SingleVal)
+	if (this.size() != m_SingleVal)
 	{
 		char cTmperr[200];
-		sprintf(cTmperr, "_______\nList--SingleValue
Constraints:\n_______\nError: --Invalid Number of Elements in
List--\nNumber of Elements: %d must match the Constraint Single Value:
%d \n", size(), m_SingleVal);
+		sprintf(cTmperr, "_______\nList--SingleValue
Constraints:\n_______\nError: --Invalid Number of Elements in
List--\nNumber of Elements: %d must match the Constraint Single Value:
%d \n", this.size(), m_SingleVal);
 		pError = strdup(cTmperr);
 	}
 
@@ -257,17 +257,17 @@
 {
 	char* pError = NULL;
 
-	if (size() < m_Lower)
+	if (this.size() < m_Lower)
 	{
 		char cTmperr[200]; 
-		sprintf(cTmperr, "_______\nList--Valuerange
Constraints:\n_______\nError: --Not Enough Elements In List--\nNumber of
Elements: %d is below the Lower Limit: %d \n", size(), m_Lower);
+		sprintf(cTmperr, "_______\nList--Valuerange
Constraints:\n_______\nError: --Not Enough Elements In List--\nNumber of
Elements: %d is below the Lower Limit: %d \n", this.size(), m_Lower);
 		pError = strdup(cTmperr); 
 	}
 
-	if (size() > m_Upper)
+	if (this.size() > m_Upper)
 	{
 		char cTmperr[200]; 
-		sprintf(cTmperr, "_______\nList--Valuerange
Constraints:\n_______\nError: --Too Many Elements In List--\nNumber of
Elements: %d is above the Upper Limit: %d \n", size(), m_Upper);
+		sprintf(cTmperr, "_______\nList--Valuerange
Constraints:\n_______\nError: --Too Many Elements In List--\nNumber of
Elements: %d is above the Upper Limit: %d \n", this.size(), m_Upper);
 		pError = strdup(cTmperr);
 	}
 
@@ -277,7 +277,7 @@
 template <class T>
 int AsnList<T>::checkConstraints(SNACC::ConstraintFailList*
pConstraintFails) const
 {
-	for (typename AsnList<T>::const_iterator i = begin(); i !=
end(); ++i)
+	for (typename AsnList<T>::const_iterator i = this->begin(); i !=
this->end(); ++i)
 		i->checkConstraints(pConstraintFails);
 	return 0;
 }
@@ -286,7 +286,7 @@
 SNACC::AsnLen AsnList<T>::BEncContent(SNACC::AsnBuf& b) const
 {
 	SNACC::AsnLen sum = 0;
-	for (typename AsnList<T>::const_reverse_iterator i = rbegin(); i
!= rend(); ++i)
+	for (typename AsnList<T>::const_reverse_iterator i =
this->rbegin(); i != this->rend(); ++i)
 		sum += i->BEnc(b);
 	return sum;
 }
@@ -321,13 +321,13 @@
 	os << "OF ";
 	++indent;
 
-	if (empty())
+	if (this->empty())
 		os << "is EMPTY\n"; 
 	else
 	{
-		os << front().typeName() << " \n";
+		os << this->front().typeName() << " \n";
 
-		for (typename AsnList<T>::const_iterator i = begin(); i
!= end(); ++i)
+		for (typename AsnList<T>::const_iterator i =
this->begin(); i != this->end(); ++i)
 		{
 			SNACC::Indent(os, indent);
 			i->Print(os, indent);
@@ -340,12 +340,12 @@
 template <class T>
 void AsnList<T>::PrintXML(std::ostream& os, const char* lpszTitle)
const
 {
-	if (empty())
+	if (this->empty())
 		os << "-- Void --\n";
 	else
 	{
 		//os << "<" << first->elmt->typeName() << ">" << endl;
-		for (typename AsnList<T>::const_iterator i = begin(); i
!= end(); ++i)
+		for (typename AsnList<T>::const_iterator i =
this->begin(); i != this->end(); ++i)
 			i->PrintXML(os, lpszTitle);
 		//os << "</" << first->elmt->typeName() << ">" << endl;
 	} 
@@ -380,7 +380,7 @@
 template <class T>
 SNACC::AsnLen AsnSeqOf<T>::BEnc(SNACC::AsnBuf& b) const
 {
-	SNACC::AsnLen l = BEncContent(b);
+	SNACC::AsnLen l = this->BEncContent(b);
 	l += SNACC::BEncDefLen(b, l);
 	l += BEncTag1(b, SNACC::UNIV, SNACC::CONS, SNACC::SEQ_TAG_CODE);
 	return l;
@@ -390,32 +390,32 @@
 void AsnSeqOf<T>::BDec(const SNACC::AsnBuf& b, SNACC::AsnLen&
bytesDecoded)
 {
 	// Clear the existing contents
-	clear();
+	this->clear();
 
 	SNACC::AsnTag tagId = SNACC::BDecTag(b, bytesDecoded);
 	if (tagId != MAKE_TAG_ID (SNACC::UNIV, SNACC::CONS,
SNACC::SEQ_TAG_CODE))
 	{
-		throw SNACC::InvalidTagException(typeName(), tagId,
+		throw SNACC::InvalidTagException(this->typeName(),
tagId,
 			__FILE__, __LINE__, "AsnSeqOf<T>:BDec()");
 	}
 	SNACC::AsnLen elmtLen;
 	elmtLen = SNACC::BDecLen(b, bytesDecoded);
-	BDecContent(b, tagId, elmtLen, bytesDecoded);
+	this->BDecContent(b, tagId, elmtLen, bytesDecoded);
 }
 
 template <class T>
 void AsnSeqOf<T>::Print(std::ostream& os, unsigned short indent) const
 {
-	os << "{ -- " << typeName() << " SEQUENCE OF ";
+	os << "{ -- " << this->typeName() << " SEQUENCE OF ";
 	++indent;
 
-	if (empty())
+	if (this->empty())
 		os << "is EMPTY\n";
 	else
 	{
-		os << front().typeName() << " \n";
+		os << this->front().typeName() << " \n";
 
-		for (typename AsnSeqOf<T>::const_iterator i = begin(); i
!= end(); ++i)
+		for (typename AsnSeqOf<T>::const_iterator i =
this->begin(); i != this->end(); ++i)
 		{
 			SNACC::Indent(os, indent);
 			i->Print(os, indent);
@@ -431,10 +431,10 @@
 	if (lpszTitle)
 	{
 		os << "<" << lpszTitle;
-		os << " typeName=\"" << typeName() << "\"";
+		os << " typeName=\"" << this->typeName() << "\"";
 	}
 	else
-		os << "<" << typeName();
+		os << "<" << this->typeName();
 
 	os << " type=\"SEQUENCE_OF\">\n";
 	AsnList<T>::PrintXML(os, lpszTitle);
@@ -442,7 +442,7 @@
 	if (lpszTitle)
 		os << "</" << lpszTitle << ">";
 	else
-		os << "</" << typeName() << ">";
+		os << "</" << this->typeName() << ">";
 }
 
 
@@ -490,7 +490,7 @@
 
 	// Encode each component of the SET OF into the AsnBuf list;
 	std::list<SNACC::AsnBuf> bufList;
-	for (typename AsnSetOf<T>::const_iterator i = begin(); i !=
end(); ++i)
+	for (typename AsnSetOf<T>::const_iterator i = this->begin(); i
!= this->end(); ++i)
 	{
 		SNACC::AsnBuf& bufRef = *bufList.insert(bufList.end(),
 			SNACC::AsnBuf());
@@ -512,18 +512,18 @@
 void AsnSetOf<T>::BDec(const SNACC::AsnBuf& b, SNACC::AsnLen&
bytesDecoded)
 {
 	// Clear the existing elements
-	clear();
+	this->clear();
 
 	SNACC::AsnTag tagId = SNACC::BDecTag(b, bytesDecoded);
 	if (tagId != MAKE_TAG_ID (SNACC::UNIV, SNACC::CONS,
SNACC::SET_TAG_CODE))
 	{
-		throw SNACC::InvalidTagException(typeName(), tagId,
+		throw SNACC::InvalidTagException(this->typeName(),
tagId,
 			__FILE__,__LINE__,"AsnSetOf<T>::BDec()");
 	}
 
 	SNACC::AsnLen elmtLen;
 	elmtLen = SNACC::BDecLen(b, bytesDecoded);
-	BDecContent(b, tagId, elmtLen, bytesDecoded);
+	this->BDecContent(b, tagId, elmtLen, bytesDecoded);
 }
 
 //
@@ -532,25 +532,25 @@
 void AsnSetOf<T>::PDec(SNACC::AsnBufBits& b, SNACC::AsnLen&
bitsDecoded)
 {
  	// Clear the existing elements
-	clear();
+	this->clear();
 
 	SNACC::AsnInt intSetOfLength;
 	intSetOfLength.PDec(b, bitsDecoded);
 	for (int i = 0; i < intSetOfLength; i++)
-		append()->PDec(b, bitsDecoded);
+		this->append()->PDec(b, bitsDecoded);
 }
 
 template <class T>
 SNACC::AsnLen AsnSetOf<T>::PEnc(SNACC::AsnBufBits& b) const
 {
-	SNACC::AsnInt intSetOfLength(size());
+	SNACC::AsnInt intSetOfLength(this->size());
 	intSetOfLength.PEnc(b);
 
 	SNACC::AsnLen totalLen = 0;
 	std::list<SNACC::AsnBufBits> bufList;
 
 	// Encode each component of the SET OF into the AsnBuf list
-	for (typename AsnSetOf<T>::const_iterator i = begin(); i !=
end(); ++i)
+	for (typename AsnSetOf<T>::const_iterator i = this->begin(); i
!= this->end(); ++i)
 	{
 		SNACC::AsnBufBits& bufRef =
 			*bufList.insert(bufList.end(),
SNACC::AsnBufBits(b.IsAligned()));
@@ -569,16 +569,16 @@
 template <class T>
 void AsnSetOf<T>::Print(std::ostream& os, unsigned short indent) const
 {
-	os << "{ -- " << typeName() << " SET OF ";
+	os << "{ -- " << this->typeName() << " SET OF ";
 	++indent;
 
-	if (empty())
+	if (this->empty())
 		os << "is EMPTY\n";
 	else
 	{
-		os << front().typeName() << " \n";
+		os << this->front().typeName() << " \n";
 
-		for (typename AsnSetOf<T>::const_iterator i = begin(); i
!= end(); ++i)
+		for (typename AsnSetOf<T>::const_iterator i =
this->begin(); i != this->end(); ++i)
 		{
 			SNACC::Indent(os, indent);
 			i->Print(os, indent);
@@ -594,10 +594,10 @@
 	if (lpszTitle)
 	{
 		os << "<" << lpszTitle;
-		os << " typeName=\"" << typeName() << "\"";
+		os << " typeName=\"" << this->typeName() << "\"";
 	}
 	else
-		os << "<" << typeName();
+		os << "<" << this->typeName();
 
 	os << " type=\"SET_OF\">";
 	AsnList<T>::PrintXML(os);
@@ -605,7 +605,7 @@
 	if (lpszTitle)
 		os << "</" << lpszTitle << ">";
 	else
-		os << "</" << typeName() << ">";
+		os << "</" << this->typeName() << ">";
 }
 
 /*



make[3]: Leaving directory `/home/scott/src/SNACC/c++-examples/src'
make targets
make[3]: Entering directory `/home/scott/src/SNACC/c++-examples/src'
g++  -I../../c++-lib/inc -I../.. -I./ -I../src  -O2 -Wall -DSTDC_HEADERS
-fPIC -Wswitch -DLinux  -c -o rfc1155-smi.o rfc1155-smi.cpp
In file included from rfc1155-smi.h:13,
                 from rfc1155-smi.cpp:9:
../../c++-lib/inc/asn-listset.h: In member function `typename
std::list<T, std::allocator<_CharT> >::iterator AsnList<T>::append(const
T&)':
../../c++-lib/inc/asn-listset.h:24: error: there are no arguments to
`end' that depend on a template parameter, so a declaration of `end'
must be available
../../c++-lib/inc/asn-listset.h:24: error: (if you use `-fpermissive',
G++ will accept your code, but allowing the use of an undeclared name is
deprecated)
../../c++-lib/inc/asn-listset.h: In member function `virtual void
AsnList<T>::Clear()':
../../c++-lib/inc/asn-listset.h:50: error: there are no arguments to
`clear' that depend on a template parameter, so a declaration of `clear'
must be available
../../c++-lib/inc/asn-listset.h: In member function `virtual
SNACC::AsnLen AsnList<T>::Interpret(SNACC::AsnBufBits&, long int)
const':
../../c++-lib/inc/asn-listset.h:75: error: there are no arguments to
`begin' that depend on a template parameter, so a declaration of `begin'
must be available
../../c++-lib/inc/asn-listset.h:76: error: there are no arguments to
`end' that depend on a template parameter, so a declaration of `end'
must be available
../../c++-lib/inc/asn-listset.h:82: error: there are no arguments to
`end' that depend on a template parameter, so a declaration of `end'
must be available
../../c++-lib/inc/asn-listset.h: In member function `virtual
SNACC::AsnLen AsnList<T>::PEnc(SNACC::AsnBufBits&) const':
../../c++-lib/inc/asn-listset.h:100: error: there are no arguments to
`size' that depend on a template parameter, so a declaration of `size'
must be available
../../c++-lib/inc/asn-listset.h:106: error: there are no arguments to
`begin' that depend on a template parameter, so a declaration of `begin'
must be available
../../c++-lib/inc/asn-listset.h:106: error: there are no arguments to
`end' that depend on a template parameter, so a declaration of `end'
must be available
../../c++-lib/inc/asn-listset.h:111: error: there are no arguments to
`size' that depend on a template parameter, so a declaration of `size'
must be available
../../c++-lib/inc/asn-listset.h:112: error: there are no arguments to
`size' that depend on a template parameter, so a declaration of `size'
must be available
../../c++-lib/inc/asn-listset.h:131: error: there are no arguments to
`size' that depend on a template parameter, so a declaration of `size'
must be available
../../c++-lib/inc/asn-listset.h:146: error: there are no arguments to
`size' that depend on a template parameter, so a declaration of `size'
must be available
../../c++-lib/inc/asn-listset.h:152: error: there are no arguments to
`size' that depend on a template parameter, so a declaration of `size'
must be available
../../c++-lib/inc/asn-listset.h:159: error: there are no arguments to
`begin' that depend on a template parameter, so a declaration of `begin'
must be available
../../c++-lib/inc/asn-listset.h:159: error: there are no arguments to
`end' that depend on a template parameter, so a declaration of `end'
must be available
../../c++-lib/inc/asn-listset.h: In member function `virtual void
AsnList<T>::PDec(SNACC::AsnBufBits&, SNACC::AsnLen&)':
../../c++-lib/inc/asn-listset.h:171: error: there are no arguments to
`clear' that depend on a template parameter, so a declaration of `clear'
must be available
../../c++-lib/inc/asn-listset.h: In member function `char*
AsnList<T>::checkSOfSingleVal(long int) const':
../../c++-lib/inc/asn-listset.h:244: error: there are no arguments to
`size' that depend on a template parameter, so a declaration of `size'
must be available
../../c++-lib/inc/asn-listset.h:247: error: there are no arguments to
`size' that depend on a template parameter, so a declaration of `size'
must be available
../../c++-lib/inc/asn-listset.h: In member function `char*
AsnList<T>::checkSOfVRange(long int, long int) const':
../../c++-lib/inc/asn-listset.h:260: error: there are no arguments to
`size' that depend on a template parameter, so a declaration of `size'
must be available
../../c++-lib/inc/asn-listset.h:263: error: there are no arguments to
`size' that depend on a template parameter, so a declaration of `size'
must be available
../../c++-lib/inc/asn-listset.h:267: error: there are no arguments to
`size' that depend on a template parameter, so a declaration of `size'
must be available
../../c++-lib/inc/asn-listset.h:270: error: there are no arguments to
`size' that depend on a template parameter, so a declaration of `size'
must be available
../../c++-lib/inc/asn-listset.h: In member function `virtual int
AsnList<T>::checkConstraints(SNACC::ConstraintFailList*) const':
../../c++-lib/inc/asn-listset.h:280: error: there are no arguments to
`begin' that depend on a template parameter, so a declaration of `begin'
must be available
../../c++-lib/inc/asn-listset.h:280: error: there are no arguments to
`end' that depend on a template parameter, so a declaration of `end'
must be available
../../c++-lib/inc/asn-listset.h: In member function `virtual
SNACC::AsnLen AsnList<T>::BEncContent(SNACC::AsnBuf&) const':
../../c++-lib/inc/asn-listset.h:289: error: there are no arguments to
`rbegin' that depend on a template parameter, so a declaration of
`rbegin' must be available
../../c++-lib/inc/asn-listset.h:289: error: there are no arguments to
`rend' that depend on a template parameter, so a declaration of `rend'
must be available
../../c++-lib/inc/asn-listset.h: In member function `void
AsnList<T>::Print(std::ostream&, short unsigned int) const':
../../c++-lib/inc/asn-listset.h:324: error: there are no arguments to
`empty' that depend on a template parameter, so a declaration of `empty'
must be available
../../c++-lib/inc/asn-listset.h:328: error: there are no arguments to
`front' that depend on a template parameter, so a declaration of `front'
must be available
../../c++-lib/inc/asn-listset.h:330: error: there are no arguments to
`begin' that depend on a template parameter, so a declaration of `begin'
must be available
../../c++-lib/inc/asn-listset.h:330: error: there are no arguments to
`end' that depend on a template parameter, so a declaration of `end'
must be available
../../c++-lib/inc/asn-listset.h: In member function `void
AsnList<T>::PrintXML(std::ostream&, const char*) const':
../../c++-lib/inc/asn-listset.h:343: error: there are no arguments to
`empty' that depend on a template parameter, so a declaration of `empty'
must be available
../../c++-lib/inc/asn-listset.h:348: error: there are no arguments to
`begin' that depend on a template parameter, so a declaration of `begin'
must be available
../../c++-lib/inc/asn-listset.h:348: error: there are no arguments to
`end' that depend on a template parameter, so a declaration of `end'
must be available
../../c++-lib/inc/asn-listset.h: In member function `SNACC::AsnLen
AsnSeqOf<T>::BEnc(SNACC::AsnBuf&) const':
../../c++-lib/inc/asn-listset.h:383: error: there are no arguments to
`BEncContent' that depend on a template parameter, so a declaration of
`BEncContent' must be available
../../c++-lib/inc/asn-listset.h: In member function `void
AsnSeqOf<T>::BDec(const SNACC::AsnBuf&, SNACC::AsnLen&)':
../../c++-lib/inc/asn-listset.h:393: error: there are no arguments to
`clear' that depend on a template parameter, so a declaration of `clear'
must be available
../../c++-lib/inc/asn-listset.h:398: error: there are no arguments to
`typeName' that depend on a template parameter, so a declaration of
`typeName' must be available
../../c++-lib/inc/asn-listset.h:403: error: there are no arguments to
`BDecContent' that depend on a template parameter, so a declaration of
`BDecContent' must be available
../../c++-lib/inc/asn-listset.h: In member function `void
AsnSeqOf<T>::Print(std::ostream&, short unsigned int) const':
../../c++-lib/inc/asn-listset.h:409: error: there are no arguments to
`typeName' that depend on a template parameter, so a declaration of
`typeName' must be available
../../c++-lib/inc/asn-listset.h:412: error: there are no arguments to
`empty' that depend on a template parameter, so a declaration of `empty'
must be available
../../c++-lib/inc/asn-listset.h:416: error: there are no arguments to
`front' that depend on a template parameter, so a declaration of `front'
must be available
../../c++-lib/inc/asn-listset.h:418: error: there are no arguments to
`begin' that depend on a template parameter, so a declaration of `begin'
must be available
../../c++-lib/inc/asn-listset.h:418: error: there are no arguments to
`end' that depend on a template parameter, so a declaration of `end'
must be available
../../c++-lib/inc/asn-listset.h: In member function `void
AsnSeqOf<T>::PrintXML(std::ostream&, const char*) const':
../../c++-lib/inc/asn-listset.h:434: error: there are no arguments to
`typeName' that depend on a template parameter, so a declaration of
`typeName' must be available
../../c++-lib/inc/asn-listset.h:437: error: there are no arguments to
`typeName' that depend on a template parameter, so a declaration of
`typeName' must be available
../../c++-lib/inc/asn-listset.h:445: error: there are no arguments to
`typeName' that depend on a template parameter, so a declaration of
`typeName' must be available
../../c++-lib/inc/asn-listset.h: In member function `SNACC::AsnLen
AsnSetOf<T>::BEncContent(SNACC::AsnBuf&) const':
../../c++-lib/inc/asn-listset.h:493: error: there are no arguments to
`begin' that depend on a template parameter, so a declaration of `begin'
must be available
../../c++-lib/inc/asn-listset.h:493: error: there are no arguments to
`end' that depend on a template parameter, so a declaration of `end'
must be available
../../c++-lib/inc/asn-listset.h: In member function `void
AsnSetOf<T>::BDec(const SNACC::AsnBuf&, SNACC::AsnLen&)':
../../c++-lib/inc/asn-listset.h:515: error: there are no arguments to
`clear' that depend on a template parameter, so a declaration of `clear'
must be available
../../c++-lib/inc/asn-listset.h:520: error: there are no arguments to
`typeName' that depend on a template parameter, so a declaration of
`typeName' must be available
../../c++-lib/inc/asn-listset.h:526: error: there are no arguments to
`BDecContent' that depend on a template parameter, so a declaration of
`BDecContent' must be available
../../c++-lib/inc/asn-listset.h: In member function `void
AsnSetOf<T>::PDec(SNACC::AsnBufBits&, SNACC::AsnLen&)':
../../c++-lib/inc/asn-listset.h:535: error: there are no arguments to
`clear' that depend on a template parameter, so a declaration of `clear'
must be available
../../c++-lib/inc/asn-listset.h:540: error: there are no arguments to
`append' that depend on a template parameter, so a declaration of
`append' must be available
../../c++-lib/inc/asn-listset.h: In member function `SNACC::AsnLen
AsnSetOf<T>::PEnc(SNACC::AsnBufBits&) const':
../../c++-lib/inc/asn-listset.h:546: error: there are no arguments to
`size' that depend on a template parameter, so a declaration of `size'
must be available
../../c++-lib/inc/asn-listset.h:553: error: there are no arguments to
`begin' that depend on a template parameter, so a declaration of `begin'
must be available
../../c++-lib/inc/asn-listset.h:553: error: there are no arguments to
`end' that depend on a template parameter, so a declaration of `end'
must be available
../../c++-lib/inc/asn-listset.h: In member function `void
AsnSetOf<T>::Print(std::ostream&, short unsigned int) const':
../../c++-lib/inc/asn-listset.h:572: error: there are no arguments to
`typeName' that depend on a template parameter, so a declaration of
`typeName' must be available
../../c++-lib/inc/asn-listset.h:575: error: there are no arguments to
`empty' that depend on a template parameter, so a declaration of `empty'
must be available
../../c++-lib/inc/asn-listset.h:579: error: there are no arguments to
`front' that depend on a template parameter, so a declaration of `front'
must be available
../../c++-lib/inc/asn-listset.h:581: error: there are no arguments to
`begin' that depend on a template parameter, so a declaration of `begin'
must be available
../../c++-lib/inc/asn-listset.h:581: error: there are no arguments to
`end' that depend on a template parameter, so a declaration of `end'
must be available
../../c++-lib/inc/asn-listset.h: In member function `void
AsnSetOf<T>::PrintXML(std::ostream&, const char*) const':
../../c++-lib/inc/asn-listset.h:597: error: there are no arguments to
`typeName' that depend on a template parameter, so a declaration of
`typeName' must be available
../../c++-lib/inc/asn-listset.h:600: error: there are no arguments to
`typeName' that depend on a template parameter, so a declaration of
`typeName' must be available
../../c++-lib/inc/asn-listset.h:608: error: there are no arguments to
`typeName' that depend on a template parameter, so a declaration of
`typeName' must be available
make[3]: *** [rfc1155-smi.o] Error 1
make[3]: Leaving directory `/home/scott/src/SNACC/c++-examples/src'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/scott/src/SNACC/c++-examples/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/scott/src/SNACC/c++-examples'
make: *** [all] Error 2

Here is the tail of the build log:

make[3]: Leaving directory `/home/scott/src/SNACC/c++-examples/src'
make targets
make[3]: Entering directory `/home/scott/src/SNACC/c++-examples/src'
g++  -I../../c++-lib/inc -I../.. -I./ -I../src  -O2 -Wall -DSTDC_HEADERS
-fPIC -Wswitch -DLinux  -c -o rfc1155-smi.o rfc1155-smi.cpp
In file included from rfc1155-smi.h:13,
                 from rfc1155-smi.cpp:9:
../../c++-lib/inc/asn-listset.h: In member function `typename
std::list<T, std::allocator<_CharT> >::iterator AsnList<T>::append(const
T&)':
../../c++-lib/inc/asn-listset.h:24: error: there are no arguments to
`end' that depend on a template parameter, so a declaration of `end'
must be available
../../c++-lib/inc/asn-listset.h:24: error: (if you use `-fpermissive',
G++ will accept your code, but allowing the use of an undeclared name is
deprecated)
../../c++-lib/inc/asn-listset.h: In member function `virtual void
AsnList<T>::Clear()':
../../c++-lib/inc/asn-listset.h:50: error: there are no arguments to
`clear' that depend on a template parameter, so a declaration of `clear'
must be available
../../c++-lib/inc/asn-listset.h: In member function `virtual
SNACC::AsnLen AsnList<T>::Interpret(SNACC::AsnBufBits&, long int)
const':
../../c++-lib/inc/asn-listset.h:75: error: there are no arguments to
`begin' that depend on a template parameter, so a declaration of `begin'
must be available
../../c++-lib/inc/asn-listset.h:76: error: there are no arguments to
`end' that depend on a template parameter, so a declaration of `end'
must be available
../../c++-lib/inc/asn-listset.h:82: error: there are no arguments to
`end' that depend on a template parameter, so a declaration of `end'
must be available
../../c++-lib/inc/asn-listset.h: In member function `virtual
SNACC::AsnLen AsnList<T>::PEnc(SNACC::AsnBufBits&) const':
../../c++-lib/inc/asn-listset.h:100: error: there are no arguments to
`size' that depend on a template parameter, so a declaration of `size'
must be available
../../c++-lib/inc/asn-listset.h:106: error: there are no arguments to
`begin' that depend on a template parameter, so a declaration of `begin'
must be available
../../c++-lib/inc/asn-listset.h:106: error: there are no arguments to
`end' that depend on a template parameter, so a declaration of `end'
must be available
../../c++-lib/inc/asn-listset.h:111: error: there are no arguments to
`size' that depend on a template parameter, so a declaration of `size'
must be available
../../c++-lib/inc/asn-listset.h:112: error: there are no arguments to
`size' that depend on a template parameter, so a declaration of `size'
must be available
../../c++-lib/inc/asn-listset.h:131: error: there are no arguments to
`size' that depend on a template parameter, so a declaration of `size'
must be available
../../c++-lib/inc/asn-listset.h:146: error: there are no arguments to
`size' that depend on a template parameter, so a declaration of `size'
must be available
../../c++-lib/inc/asn-listset.h:152: error: there are no arguments to
`size' that depend on a template parameter, so a declaration of `size'
must be available
../../c++-lib/inc/asn-listset.h:159: error: there are no arguments to
`begin' that depend on a template parameter, so a declaration of `begin'
must be available
../../c++-lib/inc/asn-listset.h:159: error: there are no arguments to
`end' that depend on a template parameter, so a declaration of `end'
must be available
../../c++-lib/inc/asn-listset.h: In member function `virtual void
AsnList<T>::PDec(SNACC::AsnBufBits&, SNACC::AsnLen&)':
../../c++-lib/inc/asn-listset.h:171: error: there are no arguments to
`clear' that depend on a template parameter, so a declaration of `clear'
must be available
../../c++-lib/inc/asn-listset.h: In member function `char*
AsnList<T>::checkSOfSingleVal(long int) const':
../../c++-lib/inc/asn-listset.h:244: error: there are no arguments to
`size' that depend on a template parameter, so a declaration of `size'
must be available
../../c++-lib/inc/asn-listset.h:247: error: there are no arguments to
`size' that depend on a template parameter, so a declaration of `size'
must be available
../../c++-lib/inc/asn-listset.h: In member function `char*
AsnList<T>::checkSOfVRange(long int, long int) const':
../../c++-lib/inc/asn-listset.h:260: error: there are no arguments to
`size' that depend on a template parameter, so a declaration of `size'
must be available
../../c++-lib/inc/asn-listset.h:263: error: there are no arguments to
`size' that depend on a template parameter, so a declaration of `size'
must be available
../../c++-lib/inc/asn-listset.h:267: error: there are no arguments to
`size' that depend on a template parameter, so a declaration of `size'
must be available
../../c++-lib/inc/asn-listset.h:270: error: there are no arguments to
`size' that depend on a template parameter, so a declaration of `size'
must be available
../../c++-lib/inc/asn-listset.h: In member function `virtual int
AsnList<T>::checkConstraints(SNACC::ConstraintFailList*) const':
../../c++-lib/inc/asn-listset.h:280: error: there are no arguments to
`begin' that depend on a template parameter, so a declaration of `begin'
must be available
../../c++-lib/inc/asn-listset.h:280: error: there are no arguments to
`end' that depend on a template parameter, so a declaration of `end'
must be available
../../c++-lib/inc/asn-listset.h: In member function `virtual
SNACC::AsnLen AsnList<T>::BEncContent(SNACC::AsnBuf&) const':
../../c++-lib/inc/asn-listset.h:289: error: there are no arguments to
`rbegin' that depend on a template parameter, so a declaration of
`rbegin' must be available
../../c++-lib/inc/asn-listset.h:289: error: there are no arguments to
`rend' that depend on a template parameter, so a declaration of `rend'
must be available
../../c++-lib/inc/asn-listset.h: In member function `void
AsnList<T>::Print(std::ostream&, short unsigned int) const':
../../c++-lib/inc/asn-listset.h:324: error: there are no arguments to
`empty' that depend on a template parameter, so a declaration of `empty'
must be available
../../c++-lib/inc/asn-listset.h:328: error: there are no arguments to
`front' that depend on a template parameter, so a declaration of `front'
must be available
../../c++-lib/inc/asn-listset.h:330: error: there are no arguments to
`begin' that depend on a template parameter, so a declaration of `begin'
must be available
../../c++-lib/inc/asn-listset.h:330: error: there are no arguments to
`end' that depend on a template parameter, so a declaration of `end'
must be available
../../c++-lib/inc/asn-listset.h: In member function `void
AsnList<T>::PrintXML(std::ostream&, const char*) const':
../../c++-lib/inc/asn-listset.h:343: error: there are no arguments to
`empty' that depend on a template parameter, so a declaration of `empty'
must be available
../../c++-lib/inc/asn-listset.h:348: error: there are no arguments to
`begin' that depend on a template parameter, so a declaration of `begin'
must be available
../../c++-lib/inc/asn-listset.h:348: error: there are no arguments to
`end' that depend on a template parameter, so a declaration of `end'
must be available
../../c++-lib/inc/asn-listset.h: In member function `SNACC::AsnLen
AsnSeqOf<T>::BEnc(SNACC::AsnBuf&) const':
../../c++-lib/inc/asn-listset.h:383: error: there are no arguments to
`BEncContent' that depend on a template parameter, so a declaration of
`BEncContent' must be available
../../c++-lib/inc/asn-listset.h: In member function `void
AsnSeqOf<T>::BDec(const SNACC::AsnBuf&, SNACC::AsnLen&)':
../../c++-lib/inc/asn-listset.h:393: error: there are no arguments to
`clear' that depend on a template parameter, so a declaration of `clear'
must be available
../../c++-lib/inc/asn-listset.h:398: error: there are no arguments to
`typeName' that depend on a template parameter, so a declaration of
`typeName' must be available
../../c++-lib/inc/asn-listset.h:403: error: there are no arguments to
`BDecContent' that depend on a template parameter, so a declaration of
`BDecContent' must be available
../../c++-lib/inc/asn-listset.h: In member function `void
AsnSeqOf<T>::Print(std::ostream&, short unsigned int) const':
../../c++-lib/inc/asn-listset.h:409: error: there are no arguments to
`typeName' that depend on a template parameter, so a declaration of
`typeName' must be available
../../c++-lib/inc/asn-listset.h:412: error: there are no arguments to
`empty' that depend on a template parameter, so a declaration of `empty'
must be available
../../c++-lib/inc/asn-listset.h:416: error: there are no arguments to
`front' that depend on a template parameter, so a declaration of `front'
must be available
../../c++-lib/inc/asn-listset.h:418: error: there are no arguments to
`begin' that depend on a template parameter, so a declaration of `begin'
must be available
../../c++-lib/inc/asn-listset.h:418: error: there are no arguments to
`end' that depend on a template parameter, so a declaration of `end'
must be available
../../c++-lib/inc/asn-listset.h: In member function `void
AsnSeqOf<T>::PrintXML(std::ostream&, const char*) const':
../../c++-lib/inc/asn-listset.h:434: error: there are no arguments to
`typeName' that depend on a template parameter, so a declaration of
`typeName' must be available
../../c++-lib/inc/asn-listset.h:437: error: there are no arguments to
`typeName' that depend on a template parameter, so a declaration of
`typeName' must be available
../../c++-lib/inc/asn-listset.h:445: error: there are no arguments to
`typeName' that depend on a template parameter, so a declaration of
`typeName' must be available
../../c++-lib/inc/asn-listset.h: In member function `SNACC::AsnLen
AsnSetOf<T>::BEncContent(SNACC::AsnBuf&) const':
../../c++-lib/inc/asn-listset.h:493: error: there are no arguments to
`begin' that depend on a template parameter, so a declaration of `begin'
must be available
../../c++-lib/inc/asn-listset.h:493: error: there are no arguments to
`end' that depend on a template parameter, so a declaration of `end'
must be available
../../c++-lib/inc/asn-listset.h: In member function `void
AsnSetOf<T>::BDec(const SNACC::AsnBuf&, SNACC::AsnLen&)':
../../c++-lib/inc/asn-listset.h:515: error: there are no arguments to
`clear' that depend on a template parameter, so a declaration of `clear'
must be available
../../c++-lib/inc/asn-listset.h:520: error: there are no arguments to
`typeName' that depend on a template parameter, so a declaration of
`typeName' must be available
../../c++-lib/inc/asn-listset.h:526: error: there are no arguments to
`BDecContent' that depend on a template parameter, so a declaration of
`BDecContent' must be available
../../c++-lib/inc/asn-listset.h: In member function `void
AsnSetOf<T>::PDec(SNACC::AsnBufBits&, SNACC::AsnLen&)':
../../c++-lib/inc/asn-listset.h:535: error: there are no arguments to
`clear' that depend on a template parameter, so a declaration of `clear'
must be available
../../c++-lib/inc/asn-listset.h:540: error: there are no arguments to
`append' that depend on a template parameter, so a declaration of
`append' must be available
../../c++-lib/inc/asn-listset.h: In member function `SNACC::AsnLen
AsnSetOf<T>::PEnc(SNACC::AsnBufBits&) const':
../../c++-lib/inc/asn-listset.h:546: error: there are no arguments to
`size' that depend on a template parameter, so a declaration of `size'
must be available
../../c++-lib/inc/asn-listset.h:553: error: there are no arguments to
`begin' that depend on a template parameter, so a declaration of `begin'
must be available
../../c++-lib/inc/asn-listset.h:553: error: there are no arguments to
`end' that depend on a template parameter, so a declaration of `end'
must be available
../../c++-lib/inc/asn-listset.h: In member function `void
AsnSetOf<T>::Print(std::ostream&, short unsigned int) const':
../../c++-lib/inc/asn-listset.h:572: error: there are no arguments to
`typeName' that depend on a template parameter, so a declaration of
`typeName' must be available
../../c++-lib/inc/asn-listset.h:575: error: there are no arguments to
`empty' that depend on a template parameter, so a declaration of `empty'
must be available
../../c++-lib/inc/asn-listset.h:579: error: there are no arguments to
`front' that depend on a template parameter, so a declaration of `front'
must be available
../../c++-lib/inc/asn-listset.h:581: error: there are no arguments to
`begin' that depend on a template parameter, so a declaration of `begin'
must be available
../../c++-lib/inc/asn-listset.h:581: error: there are no arguments to
`end' that depend on a template parameter, so a declaration of `end'
must be available
../../c++-lib/inc/asn-listset.h: In member function `void
AsnSetOf<T>::PrintXML(std::ostream&, const char*) const':
../../c++-lib/inc/asn-listset.h:597: error: there are no arguments to
`typeName' that depend on a template parameter, so a declaration of
`typeName' must be available
../../c++-lib/inc/asn-listset.h:600: error: there are no arguments to
`typeName' that depend on a template parameter, so a declaration of
`typeName' must be available
../../c++-lib/inc/asn-listset.h:608: error: there are no arguments to
`typeName' that depend on a template parameter, so a declaration of
`typeName' must be available
make[3]: *** [rfc1155-smi.o] Error 1
make[3]: Leaving directory `/home/scott/src/SNACC/c++-examples/src'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/scott/src/SNACC/c++-examples/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/scott/src/SNACC/c++-examples'
make: *** [all] Error 2