函数模板基础写法

题目描述

请给出函数模板 print 的声明,使得程序符合下文规定的输出行为。

关于输入

关于输出

见样例输出

参考答案

#include <iostream>

template <typename T>
void print(const T& t) {
    std::cout << t << std::endl;
}

// 一个不允许复制的类
struct MyStruct {
    MyStruct() = default;
    MyStruct(const MyStruct&) = delete;
    MyStruct& operator=(const MyStruct&) = delete;
};
std::ostream& operator<<(std::ostream& os, const MyStruct& s) {
    return os << "MyStruct";
}

int main() {
    print(42);
    print(3.14);
    print('@');
    print("Hello, world");

    MyStruct s;
    print(s);
}