Hello,
Another concern of the original post was how to handle anonymous C
enums in cffi.
Should one use `defconstants' for them? Or should cffi provide a
mechanism to declare anonymous enums?
As per my understanding cffi requires all enums to be named.
Thanks.
--
Surendra Singhi
http://ssinghi.kreeti.com/
-----Original Message-----
From: Luís Oliveira <[EMAIL PROTECTED]>
To: Frank Buss < [EMAIL PROTECTED]>
Cc: cffi-devel@common-lisp.net; [EMAIL PROTECTED]; 'Surendra Singhi'
< [EMAIL PROTECTED]>
Sent: Sun, 22 Jan 2006 15:56:45 +0000
Subject: Re: [cffi-devel] defenum proposal
On 2006-jan-22, at 14:47, Frank Buss wrote:
> It is not necessary to use keywords like for the named enums,
because
> unnamed enums in C are just syntatic sugar for a list of >
"#define"s, which
> is mapped to a list of defconstants. I don't know, if this macro >
fits in the
> philosophy of CFFI, perhaps in some utility class, and maybe with >
another
> name "defanonenum".
I don't really think of C's enum that way. If I want constants, I use
#define (and defconstant in CL). If I want to represent some sort of
entity or concept I use an enum (and symbols in CL). For example:
#define MAX_COUNT 127
(defconstant +max-count+ 127)
vs.
enum {
RED,
BLUE
};
:red, :blue (or 'red, 'blue)
I suppose defcenum shouldn't force the user to use keywords though?
--Luís Oliveira
http://student.dei.uc.pt/~lmoliv/
Equipa Portuguesa do Translation Project
http://www.iro.umontreal.ca/translation/registry.cgi?team=pt
___________________________________________________
Try the New Netscape Mail Today!
Virtually Spam-Free | More Storage | Import Your Contact List
http://mail.netscape.com
The problem I am looking at is that SDL uses un-named enums quite a lot. In addition it does arithmetic on them to create other enums...
enum
{
a_value,
another_value,
}
then it does
#define MAKE_MASK (n) (1<<n)
enum
{
MAKE_MASK(a_value),
MAKE_MASK(another_value)
}
In order to do this I can define a lisp function in my swig interface which does the same thing, but for that to work you need someway of getting to the value of the first enums.
Justin
_______________________________________________ cffi-devel mailing list cffi-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/cffi-devel