Completion/MacroCompletion.cpp (17 lines of code) (raw):

// // Check completion for the code declared via macros // #define CLASS_DEF(class_name) class class_##class_name \ { public: int count_##class_name; }; CLASS_DEF(one) CLASS_DEF(two) //FIXME: ugly preprocessor code, reimplement #define X(a) myVal_##a, enum myShinyEnum { #include "xmacro.txt" }; #undef X void foo(myShinyEnum en) { switch (en) { case myVal_a:break; case myVal_b:break; case myVal_c:break; case myVal_d:break; } // class_one cl{}; // cl.count_one; }