| View previous topic :: View next topic |
| Author |
Message |
Renzr Guest
|
Posted: Sun Jun 25, 2006 9:04 am Post subject: how to hide a template specialization by inheriting. |
|
|
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
|
Posted: Sun Jun 25, 2006 9:10 am Post subject: Re: how to hide a template specialization by inheriting. |
|
|
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
|
Posted: Sun Jun 25, 2006 9:10 am Post subject: Re: how to hide a template specialization by inheriting. |
|
|
* 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
|
Posted: Sun Jun 25, 2006 9:10 am Post subject: Re: how to hide a template specialization by inheriting. |
|
|
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
|
Posted: Sun Jun 25, 2006 9:10 am Post subject: Re: how to hide a template specialization by inheriting. |
|
|
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 |
|
 |
|