Q: Macro to return a unique string at compile-time Is there a Macro that can return a unique-string at compile-time, so that it could be used as the name of an objective-c class? 
I'm thinking of something like: 
#define my_macro(params) \
@implementation my_macro_function_giving_unique_string_(MyTrickyRuntimeExtension) \
  //Do stuff \
@end \


A: In C++, it can be:
#define UNIQUE_NAME2(LINE) Class##LINE
#define UNIQUE_NAME1(LINE) UNIQUE_NAME2(LINE)
#define UNIQUE_NAME UNIQUE_NAME1(__LINE__)

And just use it as:
class UNIQUE_NAME {};

[Note: Declare 1 class per line and don't hope for forward declaring it anywhere :)]

A: there is a macro __COUNTER__ predefined in Visual Studio that could help
I used iammilind suggestions
#define UNIQUE2(param) YourClassBaseNames##param
#define UNIQUE1(param) UNIQUE2(param)
#define UNIQUE UNIQUE1(__COUNTER__)

class UNIQUE
{

};

class UNIQUE
{

};

counter - returns new count ech time
reference: http://msdn.microsoft.com/en-us/library/b0084kay(v=vs.80).aspx
it is also available in GCC
