CG2007: using-direktive und Interner Compilerfehler



  • Hi,

    folgender Code erzeugt bei mir einen

    `

    [C++ Fataler Fehler] main.cpp(82): F1004 Interner Compiler-Fehler at 0x12107a7 with base 0x1200000

    `
    (Zeilennummer stimmt nicht, habe einige Funktionen auskommentiert):

    #include <vector>
    #include <iterator>
    #include <algorithm>
    
    template<typename T, unsigned int D, typename container_type=std::vector<T> >
    class array_base
    {
    public:
    	typedef array_base<T,D>                          self_type;
    	typedef typename container_type::value_type      value_type;
    	typedef typename container_type::iterator        iterator;
    	typedef typename container_type::const_iterator  const_iterator;
    	typedef typename container_type::reference       reference;
    	typedef typename container_type::const_reference const_reference;
    
    protected:
    	container_type Elements_;
    	unsigned int   Extents_[D];
    	unsigned int   Strides_[D];
    
    public:
    	array_base()
    	{
    		std::fill( Extents_, Extents_ + D, 0 );
    		std::fill( Strides_, Strides_ + D, 0 );
    	}
    
    	virtual ~array_base()
    	{
    	}
    
    	self_type& operator=( const self_type& op )
    	{
    		if( this != &op )
    		{
    			Elements_	= op.Elements_;
    			std::copy( op.Extents_, op.Extents_ +D, Extents_ );
    			std::copy( op.Strides_, op.Strides_ +D, Strides_ );
    		}
    		return *this;
    	}
    };
    
    // nur Spezialisierungen erlauben
    template<typename T, unsigned int D>
    class array;
    
    template<typename T>
    class array<T,1> : public array_base<T,1>
    {
    public:
    	// Zuweisungsoperator des Basisklassen benutzen
      	using array_base<T,1>::operator=;
    
    	array()
    	{
    	}
    };
    
    int main()
    {
    	array<int,1> arr;
    }
    

    Ist das ein bekannter Compiler Bug? Hat jemand einen CG2009/CG2010 und kann prüfen, ob er dort auch auftritt?



  • DocShoe schrieb:

    Hat jemand einen CG2009/CG2010 und kann prüfen, ob er dort auch auftritt?

    Kompiliert in C++Builder 2009 aufwärts fehlerfrei.



  • Hm, Danke. Ich schein´ irgendwie ein Händchen für Features zu haben, die mit unserer aktuellen Builder Version nicht funktionieren. War schon beim Builder 6 so und geht auch wohl so weiter 😕


Anmelden zum Antworten