为了账号安全,请及时绑定邮箱和手机立即绑定

C ++中是否有__CLASS__宏?

C ++中是否有__CLASS__宏?

C++
catspeake 2019-12-20 10:46:49
__CLASS__C ++中是否有一个宏,该宏的类名类似于__FUNCTION__提供函数名的宏
查看完整描述

3 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

我想建议我从Scott Meyer的“ Effective Modern C ++”中学到的boost :: typeindex,这是一个基本示例:



#include <boost/type_index.hpp>


class foo_bar

{

    int whatever;

};


namespace bti =  boost::typeindex;


template <typename T>

void from_type(T t)

{

    std::cout << "\tT = " << bti::type_id_with_cvr<T>().pretty_name() << "\n";

}


int main()

{

    std::cout << "If you want to print a template type, that's easy.\n";

    from_type(1.0);

    std::cout << "To get it from an object instance, just use decltype:\n";

    foo_bar fb;

    std::cout << "\tfb's type is : "

              << bti::type_id_with_cvr<decltype(fb)>().pretty_name() << "\n";

}

编译为“ g ++ --std = c ++ 14”会产生以下结果


输出量


如果要打印模板类型,这很容易。


T =两倍


要从对象实例获取它,只需使用decltype:


fb的类型是:foo_bar


查看完整回答
反对 回复 2019-12-20
  • 3 回答
  • 0 关注
  • 493 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信