Greetings,
I am taking a new shot at user-defined literals.
Compared to the previous attempt:
* I have altered libcpp so that it tokenizes user defined literals in
one chunk properly.
* I have started work on new tree nodes and accessors.
* I have (or am trying to) refine the checks for argument and
template parameter.
I would like to check that template literal operators have the specific
non-type parameter pack:
template<char...>
Foo operator"" sluggo();
I looked through the internals documentation and didn't see much on
this. Could anyone give me some pointers?
Also, is there any preference for using VEC vs. TREE_CHAIN for making
trees and accessing them? Is one sort of "modern"?
Finally I am using compparms to verify that a literal operator argument
list conforms to strings like:
(const char*)
(const char*, std::size_t)
(const wchar_t*, std::size_t)
...
I cant get them to work. I built a set of global trees for the argument
types that I want to check. The char and number tests work.
I use things like this to build the argument lists (I neglect the return
type).
userdef_lit_char16_str_type
= build_function_type_list (void_type_node, char16_array_type_node,
size_type_node, NULL_TREE);
I'm hoping that this matches
(const char16_t*, std::size_t)
but it doesn't.
Ideas?
Thanks,
Ed Smith-Rowland