C++ 打印增强型强typedef';gdb中的ed类型

C++ 打印增强型强typedef';gdb中的ed类型,c++,boost,gdb,C++,Boost,Gdb,我在代码中使用了BOOST\u STRONG\u TYPEDEF,根据std::string(这样我就可以拥有服务器ID和文件ID,例如,当函数需要文件ID时,不要意外地传递服务器ID) 我现在正在调试我的代码,当我迭代一组这种类型定义的对象时,打印当前元素会很有用。不幸的是,boost的模板化特性使输出很难阅读: (gdb)p服务器 $11=(常数mpn::seru ID&)@0x756660: {,std::分配器>, boost::detail::empty_base>>>= {,std:

我在代码中使用了
BOOST\u STRONG\u TYPEDEF
,根据
std::string
(这样我就可以拥有
服务器ID
文件ID
,例如,当函数需要文件ID时,不要意外地传递服务器ID)

我现在正在调试我的代码,当我迭代一组这种类型定义的对象时,打印当前元素会很有用。不幸的是,boost的模板化特性使输出很难阅读:

(gdb)p服务器

$11=(常数mpn::seru ID&)@0x756660: {,std::分配器>, boost::detail::empty_base>>>= {,std::分配器>, boost::detail::empty_base>>>= {,std::分配器>, boost::detail::empty_base>>>= {, std::分配器>,boost::detail::empty_base>>= {, std::allocator>,boost::equality\u Compariable2, std::allocator>,boost::detail::empty_base>>= {, std::分配器>,boost::detail::empty_base>>= {>={},},},},},},},},t=“B”…}

是否有某种方法将对象投射到字符串(C++允许使用<代码>静态TaskStudio<代码>)并正常打印?< /P> 有没有办法将对象转换为字符串


是:你需要为它定义一个漂亮的打印机

结果是
BOOST_STRONG_TYPEDEF
将底层对象作为TYPEDEF的属性:

(gdb) p server.t