C++:世界上唯一能让程序员在配置|

香菇0_0

园龄:2年7个月粉丝:10关注:1

【C++】实现模板参数约束

由于c++模板参数的约束是C++20之后的标准,如果之前的C++标准想要实现类似的效果可以通过添加这段代码:

static_assert(std::is_base_of<ISystem, TSystem>::value, "类型必须继承自ISystem");

如果子类不是继承自相应的基类编译会抛出断言。

完整实例:

template<typename TSystem>
inline void BaseApp::RegisterSystem(shared_ptr<TSystem> system)
{
	static_assert(std::is_base_of<ISystem, TSystem>::value, "类型必须继承自ISystem");
	_ioc.RegisterInstance<TSystem>(system);
	shared_ptr<ISystem> sys = system;
	sys->SetApp(this);
	if (_bInit)
		sys->Init();
	else
		_systemList.push_back(sys);
}

本文作者:香菇0_0

本文链接:https://www.cnblogs.com/Xiang-gu/p/16751620.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   香菇0_0  阅读(49)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.