There is no built-in macro for this, but obviously you can write your own little parsing procedure that takes a file and tears out the directory name for the given full file name. Allows you to call this function:
extern std::string parseLastDir (const char *path);
Then you can make a macro like this:
#define __DIR__ parseLastDir (__FILE__)
, ( std::string char *, ) ( , , .)