C++ c++;,将任何类型的数据(模板T)打印到控制台
在我的代码中,我想实现一个将任何数据类型打印到控制台的函数。 函数始终接收一个C++ c++;,将任何类型的数据(模板T)打印到控制台,c++,templates,std,C++,Templates,Std,在我的代码中,我想实现一个将任何数据类型打印到控制台的函数。 函数始终接收一个字符串作为第一个参数,以及一个每次都可能变化的数据作为第二个参数 互斥记录器.h namespace Loggers { std::mutex m_mutex; template<typename T> void sharedLog(const std::string& message, T data) { std::lock_guard<std
字符串作为第一个参数,以及一个每次都可能变化的数据作为第二个参数
互斥记录器.h
namespace Loggers
{
std::mutex m_mutex;
template<typename T>
void sharedLog(const std::string& message, T data)
{
std::lock_guard<std::mutex> locker(m_mutex);
std::cout << message << data << std::endl;
}
}
在编译时,我会遇到以下错误:
C2593运算符问题是您正在调用运算符问题是您正在调用运算符调用函数时T
是什么类型?@StackDanny应该是什么?请创建一个来向我们展示。另外,请复制粘贴该示例的完整错误输出。是否包含
?@StackDanny是的,我包含了,不幸的是,它只显示行号而不显示列调用函数时的T
类型是什么?@StackDanny应该是什么?请创建一个来向我们显示。另外,请复制粘贴该示例的完整错误输出。是否包含
?@StackDanny是的,我包含了,不幸的是,它只显示行号而不显示列
#include "Mutex_Loggers.h"
/*other stuff*/
Loggers::sharedLog("IN THREAD: ", std::this_thread::get_id());
Loggers::sharedLog("IN APP CREATION ", nullptr);
Loggers::sharedLog("IN create_CtrApp_and_register ", {1,2,3});
std::ostream& operator<< (std::ostream &out, const T& arg);
friend std::ostream& operator<< (std::ostream &out, const T& arg);
str << a << b << c;