Hi,

On Fri, 2008-08-22 at 05:49 -0400, Yu Feng wrote:
> Just a scratch of idea:
> 
> class array<T> {
>    [CCode (snippet = "int i; while(((T)this)[i]) i++; return i;")]
>    public int get_length();
>    [CCode (snippet = "gpointer * rt; while((T)(this)[i]) i++; result.length = 
> i; rt = g_new0(T, i); for(i=0; i<result.length; i++) rt[i] = this[i]); return 
> rt;")]
>    public array duplicate();
>    [CCode (snippet = "return this[id];")]
>    public T element(int id);
>    [CCode (snippet = "g_free(this);")]
>    public void free();
> }

It looks to me like you are requesting some sort of compile-time
templates, which is certainly not the way vala or C does it. Although I
like the abstract meta-programming features of C++, I think it's way out
of scope to get something like this into vala. As I understand it, vala
is a very thin lean machine between C and C++ targeting Glib and GObject
which allows you to incorporate other libraries (or external exotic
functions) without too much fuss. For compile-time templates or
embedding other languages, you will need a much bigger compiler beastie
to support this properly.

Regards,
Hans

_______________________________________________
Vala-list mailing list
Vala-list@gnome.org
http://mail.gnome.org/mailman/listinfo/vala-list

Reply via email to