一份代码,管住两种类型

👁️ 2 人浏览 💬 0 人评论 ❤️ 添加收藏

(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)

#include <iostream>
#include <string>

/* 一份代码,管住所有"能比大小"的类型 */
template <typename T>
const T &bigger(const T &a, const T &b) { return (a > b) ? a : b; }

template <typename T>
class Box {
public:
    explicit Box(T v) : v_(std::move(v)) {}
    const T &get() const { return v_; }
private:
    T v_;
};

int main() {
    Box<int> bi(7);
    Box<std::string> bs("hi");

    std::cout << bigger(3, 9) << "/"
              << bigger(std::string("apple"), std::string("pear")) << "/"
              << bi.get() << "/" << bs.get() << "\n";
    return 0;
}
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论