From-SVN: r20220
This commit is contained in:
Jason Merrill 1998-06-03 21:49:32 -04:00
parent 1813dd7bdd
commit dc724178aa
8 changed files with 31 additions and 28 deletions

View File

@ -39,19 +39,19 @@ template<class VertexType, class EdgeType>
ostream& operator<<(ostream& os, Graph<VertexType,EdgeType>& G)
{
// display of vertices with successors
for(int i = 0; i < G.size(); ++i)
for(int i = 0; i < G.size(); ++i) // ERROR - no size function
{
os << G[i].first << " <";
os << G[i].first << " <"; // ERROR - no index operator
// The compiler does not like this line!!!!!!
typename Graph<VertexType, EdgeType>::Successor::iterator
startN = G[i].second.begin(),
endN = G[i].second.end();
startN = G[i].second.begin(), // ERROR - no index operator
endN = G[i].second.end(); // ERROR - no index operator
while(startN != endN)
{
os << G[(*startN).first].first << ' ' // vertex
<< (*startN).second << ' '; // edge value
<< (*startN).second << ' '; // ERROR - no index operator
++startN;
}
os << ">\n";
@ -62,7 +62,7 @@ ostream& operator<<(ostream& os, Graph<VertexType,EdgeType>& G)
int main()
{
// no edge weighting, therefore type Empty:
Graph<string, Empty> V(true); // directed
Graph<string, Empty> V(true); // ERROR - no bool constructor
// ReadGraph(V, "gra1.dat");
// display of vertices with successors

View File

@ -1,3 +1,6 @@
// Test for obsolete specialization syntax. Turn off -pedantic.
// Special g++ Options:
#include <iostream.h>
#include <typeinfo>
@ -14,11 +17,11 @@ A<T>::test(){
}
// Specialization declaration
void
A<double>::test(); // ERROR - not a specialization
A<double>::test();
// Specialization definition
void
A<double>::test(){ // ERROR - not a specialization
A<double>::test(){
cerr << "specialization for " << typeid(*this).name() << endl;
}

View File

@ -1,11 +0,0 @@
//Build don't link:
//Neither stack nor vector provide priority_queue, use <queue> instead
#include <stack>
#include <vector>
int main()
{
priority_queue< int, vector<int>, greater<int> > pq; // ERROR - unknown template
return 0;
}

View File

@ -4,8 +4,8 @@
template <class T> class Expr
{
public :
Expr(){};
Expr(const T&){};
Expr(){};
Expr(const T&){};
};
template <class T >

View File

@ -1,4 +1,8 @@
// spurious 'const' in error.
// For egcs-2.91.34, the warning message refers to
// class ostream & operator <<(class ostream &, const class Vector<T> &)
// Also, the template instantiation does not provide the missing
// friend function, the non-template function does
#include <stdio.h>
#include <iostream.h>
@ -6,16 +10,23 @@
template <class T>
class Vector
{
friend ostream& operator<< (ostream& out, const Vector<T> & vec);
friend ostream& operator<< (ostream& out, const Vector<T> & vec); // WARNING -
};
template <class T>
ostream& operator<< (ostream& out, const Vector<T> & vec)
{}
{
abort(); // this should not be called
}
template class Vector<char>;
template ostream& operator<< (ostream& out, const Vector<char> &);
ostream& operator<< (ostream& out, const Vector<char>&)
{
return out;
}
main()
{
Vector<char> vc;

View File

@ -10,5 +10,5 @@ private:
main()
{
A *list = new A[10](4); //ERROR -
A *list = new A[10](4);
}

View File

@ -6,8 +6,8 @@ inline bool operator!=(const T& x, const T& y) {
}
enum T {
V1,
}; //ERROR - comma at end of enumerator list
V1
};
struct X {
T t : 31;
@ -15,6 +15,6 @@ struct X {
void
f(X& v) {
if( v.t != V1 ) {
if( v.t != V1 ) { // gets bogus error - address of bitfield
}
}

View File

@ -95,7 +95,7 @@ void
UserClass::f(const String& filename) throw(BadFileName)
{
try {
File f(filename);
File f(filename); // WARNING - unused
}
catch (const AccessViolation& e) {
cout << " FULLY recover from access-violation\n";