I don't think that meta-programming will help check you the values. This can
only be the case if the values are available (as const with external
linkage) at compile time.
If you need the checking pattern to be generated during the compilation than
take a look at boost::xpressive.
With Kind Regards,
Ovanes
On 10/18/07, Zeljko Vrba
On Thu, Oct 18, 2007 at 09:04:39AM +0200, Ovanes Markarian wrote:
Hello Zeljko,
may be another approach? Why not using a template method and static
concepts
inside a function, which ensure that a parameter is of correct type?
Hmm, I didn't quite get you. But I want to match both on *type* and *value* as shown in this rule:
| (Insn "addq", Reg "%rsp") -> (* do something *)
The type here is (Insn, Reg) [particular types of larger variants]; each component is also matched on the particular value ("addq" and "%rsp" strings).
| (_, Imm x) -> (* any 1st item; the 2nd must be Imm type, and
the x variable is bound to the value carried by the
2nd
The type here is doesn't matter and (Imm x) - this is a match only on type where the variable x gets bound to the value carried by the variant type.
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users