membres statiques et spécialisations partielles de classes
13 réponses
AG
Bonjour,
voici mon bout de code (toujours le même en amélioré). Ma question est la
suivante :
combien de tableau tab ai-je ? Moi j'en veux que deux. Un pour myA1 et un
pour myA2. Le fait que je sois obligé de spécialiser l'instanciation du
tableau statique tab me fait penser que j'aurais 12 tableau en tout. Est-ce
bien ça ?
D'avance merci.
Alexandre.
#define D 5
const int L=10;
template <class T,bool S,int N=0> class A
{
static T tab[D*L];
A<T,S,N+1> next;
public:
void f(void)
{
for(int i=0;i<L;i++) tab[N*L+i+1]+=tab[N*L+i];
next.f();
};
};
template<class T,bool S> class A<T,S,D>
{
static T tab[D*L];
public:
void f(void)
{
for(int i=0;i<S;i++) tab[D*L+i+1]+=tab[D*L+i];
};
};
template<class T, bool S,int N>
T A<T,S,N>::tab[D*L]={0};
template<class T, bool S>
T A<T,S,D>::tab[D*L]={0};
int main(void)
{
A<int,true> myA1;
A<int,false> myA2
myA1.f();
myA2.f();
}
En fait, tu as deux classes avec un "int N=0>" alors qu'il n'en faudrait qu'une. j'en ai deux dans le sens ou pour l'une S vaut true, et pour l'autre, S vaut
false.
Non, non, ce n'est pas ce que j'ai voulu dire.
A et B ont le paramètre template "int N=0". Une seule de ces deux classes devrait l'avoir.
template<class T, bool S, int N=0> class A template<class T,bool S, int N=0> class B
On Mon, 13 Aug 2007 09:59:23 +0200, "AG" <ag@tb.fr>:
En fait, tu as deux classes avec un "int N=0>" alors qu'il n'en
faudrait qu'une.
j'en ai deux dans le sens ou pour l'une S vaut true, et pour l'autre, S vaut
false.
Non, non, ce n'est pas ce que j'ai voulu dire.
A et B ont le paramètre template "int N=0". Une seule de ces deux
classes devrait l'avoir.
template<class T, bool S, int N=0> class A
template<class T,bool S, int N=0> class B
En fait, tu as deux classes avec un "int N=0>" alors qu'il n'en faudrait qu'une. j'en ai deux dans le sens ou pour l'une S vaut true, et pour l'autre, S vaut
false.
Non, non, ce n'est pas ce que j'ai voulu dire.
A et B ont le paramètre template "int N=0". Une seule de ces deux classes devrait l'avoir.
template<class T, bool S, int N=0> class A template<class T,bool S, int N=0> class B
espie
In article , Fabien LE LEZ wrote:
En C moderne et en C++, il vaut mieux ne pas le mettre effectivement. Bien sûr, le type de retour est indispensable (contrairement au même vieux C, d'ailleurs) :
Pas entierement vrai. En C moderne, il faut le laisser dans les declarations de fonctions. Sinon, celles-ci ne sont pas prises comme des prototypes completement types.
In article <1dfob3t93rdnrsaae5ab2ci0quapjmrujb@4ax.com>,
Fabien LE LEZ <usenet13@edulang.com> wrote:
En C moderne et en C++, il vaut mieux ne pas le mettre effectivement.
Bien sûr, le type de retour est indispensable (contrairement au même
vieux C, d'ailleurs) :
Pas entierement vrai. En C moderne, il faut le laisser dans les declarations
de fonctions. Sinon, celles-ci ne sont pas prises comme des prototypes
completement types.
En C moderne et en C++, il vaut mieux ne pas le mettre effectivement. Bien sûr, le type de retour est indispensable (contrairement au même vieux C, d'ailleurs) :
Pas entierement vrai. En C moderne, il faut le laisser dans les declarations de fonctions. Sinon, celles-ci ne sont pas prises comme des prototypes completement types.
Fabien LE LEZ
On Thu, 16 Aug 2007 08:56:32 +0000 (UTC), (Marc Espie):
Pas entierement vrai. En C moderne, il faut le laisser dans les declarations de fonctions. Sinon, celles-ci ne sont pas prises comme des prototypes completement types.
Bien vu. Ça m'appendra à parler de langages que je ne connais pas...
On Thu, 16 Aug 2007 08:56:32 +0000 (UTC), espie@lain.home (Marc
Espie):
Pas entierement vrai. En C moderne, il faut le laisser dans les declarations
de fonctions. Sinon, celles-ci ne sont pas prises comme des prototypes
completement types.
Bien vu. Ça m'appendra à parler de langages que je ne connais pas...
On Thu, 16 Aug 2007 08:56:32 +0000 (UTC), (Marc Espie):
Pas entierement vrai. En C moderne, il faut le laisser dans les declarations de fonctions. Sinon, celles-ci ne sont pas prises comme des prototypes completement types.
Bien vu. Ça m'appendra à parler de langages que je ne connais pas...