#include <iostream>

struct clBaseSegment {};

template <class T> 
class structtemplatetest : public clBaseSegment, public  T{ 
   
}; 
   
typedef struct irgendwas{ 
char eins[5]; 
char zwei[5]; 
char drei[5]; 
}irgendwas; 
   
class tester : public structtemplatetest<irgendwas>{ 
    public: 
     tester(irgendwas const& iw)
     {
        *static_cast<irgendwas*>(this) = iw;
     }; 
};

int main()
{
    irgendwas iw;
    iw.eins[0] = 'a';
    iw.zwei[0] = 'b';
    iw.drei[0] = 'c';
    tester tt(iw);
    std::cout << tt.eins[0] << " " << tt.zwei[0] << " " << tt.drei[0] << "\n";
}
