view gcc/testsuite/g++.old-deja/g++.bob/template2.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
line wrap: on
line source

// { dg-do assemble  }
// prms-id: 10046
template <class T>
class Array
{
public:
    T const & operator[] (int i) const;
};

class Referenceable {};

template < class Referencee >
class Referencer
{
public:
    operator Referencee *() const { return i_referencee; }

protected:
    Referencee* i_referencee;
};

class ScenarioGroup {};

class ScenarioSpace;

class ScenarioSet : public Referenceable,
		    public Array< Referencer<ScenarioGroup> >
{
public:
    ScenarioSet& operator=(ScenarioSet const & s);
};

class ScenarioSpace : public Referenceable,
		      public Array< Referencer<ScenarioSet> >
{
};

class ScenarioSetNameSelector
{
public:
    bool operator () (ScenarioSpace &space)
    {
	int idx;
	i_set = space[idx];
	return false;
    }
private:
    ScenarioSet *i_set;
};