- 184 名前:デフォルトの名無しさん mailto:sage [05/01/06 22:59:24]
- >183
それだとDATA_MEMBERが評価される前に$が評価されてしまうので結局同じことになりませんか? 色々漁ってみたら限界はあるもののいくつか対処法はあるみたいですね. lists.boost.org/MailArchives/boost/msg46364.phpからだと template<class T> struct wrap { typedef T type; }; template<class T> struct wrap<void (T)> { typedef T type; }; #define TYPE(x) wrap<void x>::type #define DEP_TYPE(x) typename wrap<void x>::type struct Sample2 { typedef Sample2 _self; BEGIN_JUNK( ZJunkBase, typedef ZTypeList<> _data_member1; ); DATA_MEMBER( 1, TYPE((my_class<char, int>)), x ); END_JUNK(); }; とか.記事本文では指摘されていないですけれど,型がdependent typeか どうかでマクロを使い分ける必要もありますね,これ. ・・・っていうか話題をそらしてしまってすいませんです.
|

|