C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

how to hide a template specialization by inheriting.

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ language (comp.lang.c++)
View previous topic :: View next topic  
Author Message
Renzr
Guest





PostPosted: Sun Jun 25, 2006 9:04 am    Post subject: how to hide a template specialization by inheriting. Reply with quote



In the current project i involved, the hiding the template
specialization by inheriting is a desired goal. but my code can not be
complied correctly. I realy want someone can do me a favor. the code is
listed below:

// base.h
#ifndef BASE_H
#define BASE_H

template < class T > class Base
{
private:
T* _read;
const T* write;
};

#endif // base_h

// derived.h
#ifndef DERIVED_H
#define DERIVED_H
include "base.h"
#include "mt.h"
// class mt is defined in mt.h and implemented in mt.cpp

class MT;

class Derived: public Base <MT>
{
};

#endif // derived.h

when compling the codes above with g++, the error massage is listed as
below.
error: `MT' is not a template type


I realy want someone can do me a favor
Back to top
Ian Collins
Guest





PostPosted: Sun Jun 25, 2006 9:10 am    Post subject: Re: how to hide a template specialization by inheriting. Reply with quote



scott wrote:
Quote:
I think it is not the problem of your use of template, maybe for you
include files MT.h .

My?

Please reply on the correct branch and quote some context.

--
Ian Collins.
Back to top
Alf P. Steinbach
Guest





PostPosted: Sun Jun 25, 2006 9:10 am    Post subject: Re: how to hide a template specialization by inheriting. Reply with quote



* Renzr:
Quote:
In the current project i involved, the hiding the template
specialization by inheriting is a desired goal. but my code can not be
complied correctly. I realy want someone can do me a favor. the code is
listed below:

No, it isn't.

See the FAQ item "How do I post a question about code that doesn't work
correctly?" currently at <url:
http://www.parashift.com/c++-faq-lite/how-to-post.html#faq-5.8>.

Don't waste people's time by posting questions about code you don't show.

--
A: Because it messes up the order in which people normally read text.
Q: Why is it such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?
Back to top
scott
Guest





PostPosted: Sun Jun 25, 2006 9:10 am    Post subject: Re: how to hide a template specialization by inheriting. Reply with quote

I think it is not the problem of your use of template, maybe for you
include files MT.h .
I just type below code and compile it in vs2005, it works very well.

// base.h
#ifndef BASE_H
#define BASE_H


template < class T > class Base
{
private:
T* _read;
const T* write;
};


#endif // base_h


// derived.h
#ifndef DERIVED_H
#define DERIVED_H
//include "base.h"
//#include "mt.h"
// class mt is defined in mt.h and implemented in mt.cpp


class MT;


class Derived: public Base <MT>
{



};


#endif // derived.h
Back to top
Ian Collins
Guest





PostPosted: Sun Jun 25, 2006 9:10 am    Post subject: Re: how to hide a template specialization by inheriting. Reply with quote

Renzr wrote:
Quote:
In the current project i involved, the hiding the template
specialization by inheriting is a desired goal. but my code can not be
complied correctly. I realy want someone can do me a favor. the code is
listed below:

// base.h
#ifndef BASE_H
#define BASE_H

template < class T > class Base
{
private:
T* _read;
const T* write;
};

#endif // base_h

// derived.h
#ifndef DERIVED_H
#define DERIVED_H
include "base.h"
#include "mt.h"
// class mt is defined in mt.h and implemented in mt.cpp

mt or MT?
class MT;

If MT, why this line?


--
Ian Collins.
Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ language (comp.lang.c++) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.