给定此类信息,如何打印c ++函数参数的内容

问题描述

我有一个c ++ 11代码,该代码具有如下功能:

bool prepareSwitch(const std::list<hardware_interface::ControllerInfo>& start_list,const std::list<hardware_interface::ControllerInfo>& stop_list)

为了调试该代码,我想研究/打印例如start_list,但是,由于对c ++的基本了解,这使我感到困惑。但是,关于此输入参数,我可以获得的其他信息是关于<hardware_interface::ControllerInfo>所描述的in this documentation.

我不确定如何使用此信息来打印或调查此输入。有人可以指导一下吗?

使用std::cout << start_list << std::endl;出现编译错误。

解决方法

为简化调试,您可以重载以下运算符。 (根据需要调整格式)

std::ostream & operator<<(std::ostream & os,const hardware_interface::InterfaceResources &ir)
{
  os << "hi: " << ir.hardware_interface << std::endl;
  for (const auto & r : ir.resources)
  {
     os << "r: "<< r << std:;endl;
  }
  return os
}

std::ostream & operator<<(std::ostream & os,const hardware_interface::ControllerInfo &ci)
{
  os << "name:" << ci.name << std::endl;
  os << "type: " << ci.type<< std::endl;
  for (const auto & cr : ci.claimed_resources)
  {
     os << "cr: " << cr << std::endl;
  }
  return os
}

然后您可以打印函数参数:

for (const auto& ci: startList) 
{
   std::cout << ci;
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...