On Wed, 01 Jun 2011 20:45:06 +0200, Zhongye Jia <jia.zhongye@xxxxxxxxx>
wrote:
I do not think this can be done in *compiling* time, neither macro in
c nor template in c++, so would you be so kind to offer the solution
by using template or just give some tips? Since I'm not that good at
c++ :)
I was thinking along the lines of:
template<unsigned offset>
struct _filename {
static const char *const val = __FILE__[offset] == '/'
? __FILE__ + offset + 1
: _filename<offset-1>::val;
};
template<>
struct _filename<0> {
static const char *const val = __FILE__;
};
static const char *const filename = _filename<sizeof(__FILE__) - 1>;
I'm a bit rusty so I dunno if that'll work in this format.
--
Best regards, _ _
.o. | Liege of Serenely Enlightened Majesty of o' \,=./ `o
..o | Computer Science, Michal "mina86" Nazarewicz (o o)
ooo +-----<email/xmpp: mnazarewicz@xxxxxxxxxx>-----ooO--(_)--Ooo--
--
To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html