C++可怕的重载

原文地址

#include <iostream>

struct Bad { };
struct B { };
struct A {
	Bad operator,(B b) { return Bad(); }
};
struct D { };
struct Ugly {
	D operator>(Bad b) { return D(); }
} U;
struct Terrible { } T;
struct Evil {
	~Evil() {
		std::cout << "破坏" << std::endl;
	}
};
struct Nasty {
	Evil operator,(D d) { return Evil(); }
};
struct Idea {
	void operator()(A a, B b) {
		std::cout << "保存数据" << std::endl;
	}
	Nasty operator<(Terrible t) { return Nasty(); }
} gun;//这是个对象.

template<typename T, typename U>
void fun(A a, B b) {
	std::cout << "哈哈!" << std::endl;
}

int main() {
	A a;
	B b;

	// 猜猜结果
	fun<A, B>(a, b);
	gun<T, U>(a, b);
    //gun<T|a,b|U>Bad|Evil,D==>破坏.
}
posted @   zjh6  阅读(7)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示