Is it possible to write some f()
template function that takes a type T
and a pointer to member function of signature void(T::*pmf)()
as (template and/or function) arguments and returns a const char*
that points to the member function's __func__
variable (or to the mangled function name)?
EDIT: I am asked to explain my use-case. I am trying to write a unit-test library (I know there is a Boost Test library for this purpose). And my aim is not to use any macros at all:
struct my_test_case : public unit_test::test {
void some_test()
{
assert_test(false, "test failed.");
}
};
My test suite runner will call my_test_case::some_test()
and if its assertion fails, I want it log:
ASSERTION FAILED (&my_test_case::some_test()): test failed.
I can use <typeinfo>
to get the name of the class but the pointer-to-member-function is just an offset, which gives no clue to the user about the test function being called.
Aucun commentaire:
Enregistrer un commentaire