From: matteo.bordin@gmail.com
Subject: Re: prohibit certain generic instantiations in Ada 2005
Date: 11 Feb 2006 00:04:44 -0800
Date: 2006-02-11T00:04:44-08:00 [thread overview]
Message-ID: <1139645084.563448.239040@g47g2000cwa.googlegroups.com> (raw)
In-Reply-To: <idm74jcpsz3l.147l8qc55x0y6$.dlg@40tude.net>
I will provide a proper example in C++. With this code I can prohibit
instantiation of template My_Class with T=int.
class Checker{
public:
static void check(float){};
private:
static void check(int){};
};
template <class T>
class My_Class{
public:
My_Class(){
T t;
Checker::check(t);
}
};
int main(){
My_Class<int> mc = My_Class<int>(); //COMPILE TIME ERROR!!!!
//The error comes from the fact that Checker::check(int) is private
My_Class<float> mc2 = My_Class<float>(); //OK!!!
};
When I said that the compilation model for template of Ada is similar
to C++, I meant in regards to compile-time code generation (opposed to
the model of Java generics). In both languages (Ada and C++), templates
can be used as a generative environment.
I just want to know f here is a way to reproduce the C++ code I
provided in Ada (2005).
Thank you
next prev parent reply other threads:[~2006-02-11 8:04 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-02-09 18:01 prohibit certain generic instantiations in Ada 2005 matteo.bordin
2006-02-09 20:02 ` Matthew Heaney
2006-02-10 14:18 ` matteo.bordin
2006-02-10 18:25 ` Dmitry A. Kazakov
2006-02-10 19:03 ` Georg Bauhaus
2006-02-11 10:45 ` Dmitry A. Kazakov
2006-02-11 8:04 ` matteo.bordin [this message]
2006-02-11 9:54 ` Martin Krischik
2006-02-11 10:20 ` matteo.bordin
2006-02-11 12:46 ` Martin Krischik
2006-02-11 10:45 ` Dmitry A. Kazakov
2006-02-11 22:20 ` Jeffrey R. Carter
2006-02-11 15:36 ` Stephen Leake
2006-02-12 8:55 ` matteo.bordin
2006-02-12 9:49 ` Dmitry A. Kazakov
2006-02-12 12:41 ` matteo.bordin
2006-02-13 19:14 ` Matthew Heaney
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox