C++ 广义参数

C++ 广义参数,c++,C++,我想知道是否有可能有一个函数参数,而不关心它的类型是什么。 例如,我有一个覆盖了的类,您可以使用模板: template <typename T> CLog& CLog::operator <<(const T& p) { buffer << p; return *this; } template <class T> Clog& Clog::operator <<(const T& t)

我想知道是否有可能有一个函数参数,而不关心它的类型是什么。 例如,我有一个覆盖了的类,您可以使用模板:

template <typename T>
CLog& CLog::operator <<(const T& p) {
    buffer << p;
    return *this;
}
template <class T>
Clog& Clog::operator <<(const T& t) {
    buffer << t;
    return *this;
}
模板

阻塞&CLog::operator这可以通过模板完成:

template <typename T>
CLog& CLog::operator <<(const T& p) {
    buffer << p;
    return *this;
}
template <class T>
Clog& Clog::operator <<(const T& t) {
    buffer << t;
    return *this;
}
模板

阻塞&Clog::operator在这种情况下,您可以使用
模板

template<class T>
CLog& Clog::operator <<(const T& value) {
    buffer << value;
    return *this;
}
模板

CLog&CLog::operator另一个答案基本正确,但不支持移动操作。使用

template <typename T>
CLog& CLog::operator <<(T&& p) {
    buffer << std::forward<T>(p);
    return *this;
}
模板

阻塞&阻塞::操作员哇。3个几乎相同答案之间的3秒差异:在我常去的其他论坛上,我很少看到这种情况。