T.48: If your compiler does not support concepts, fake them with enable_if

T.48:如果你的编译器不支持concepts,使用enable_if模仿它

Reason(原因)

Because that's the best we can do without direct concept support. enable_if can be used to conditionally define functions and to select among a set of functions.

因为这是不能活动concept的直接支持时可以采用的最佳做法。enable_if可以用于有条件定义函数并从一组函数中进行选择。

Example(示例)

templateenable_if_t>f(T v){    // ...}// Equivalent to:templatevoid f(T v){    // ...}

Note(注意)

Beware of complementary constraints. Faking concept overloading using enable_if sometimes forces us to use that error-prone design technique.

避免互补约束。使用enable_if模拟概念重载有时会要求我们使用容易出错的设计技术。

Enforcement(实施建议)

???

原文链接

https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#t48-if-your-compiler-does-not-support-concepts-fake-them-with-enable_if

新书介绍

《实战Python设计模式》是作者最近出版的新书,拜托多多关注!

本书利用Python 的标准GUI 工具包tkinter,通过可执行的示例对23 个设计模式逐个进行说明。这样一方面可以使读者了解真实的软件开发工作中每个设计模式的运用场景和想要解决的问题;另一方面通过对这些问题的解决过程进行说明,让读者明白在编写代码时如何判断使用设计模式的利弊,并合理运用设计模式。

对设计模式感兴趣而且希望随学随用的读者通过本书可以快速跨越从理解到运用的门槛;希望学习Python GUI 编程的读者可以将本书中的示例作为设计和开发的参考;使用Python 语言进行图像分析、数据处理工作的读者可以直接以本书中的示例为基础,迅速构建自己的系统架构。


觉得本文有帮助?请分享给更多人。

关注微信公众号【面向对象思考】轻松学习每一天!

面向对象开发,面向对象思考!

存储过程能用if not exist_C++核心准则T.48:如果不能用概念,用enable_if相关推荐

  1. C++核心准则T.48:如果你的编译器不支持concepts,使用enable_if模仿它

    T.48: If your compiler does not support concepts, fake them with enable_if T.48:如果你的编译器不支持concepts,使 ...

  2. php 语法 条件变量,C ++核心准则:注意条件变量的陷阱

    今天,我写了一篇关于条件变量的恐怖文章.您应该意识到条件变量的这一问题.C ++核心准则CP 42仅声明:"不要无条件等待". 等待!条件变量支持一个非常简单的概念.一个线程准备一 ...

  3. modbus软件开发实战指南_C++核心准则?GSL:指南支持库

    GSL: Guidelines support library GSL:指南支持库 The GSL is a small library of facilities designed to suppo ...

  4. 开源压缩算法brotli_Google的Brotli压缩算法,C ++核心准则以及更多新闻

    开源压缩算法brotli 在本周的开源新闻综述中,我们将介绍Google的Brotli压缩算法,适用于GitHub的Classroom,C ++ Core Guidelines等! 2015年9月20 ...

  5. C++核心准则C.4:只有直接访问表达的函数,才应该成为成员

    C.4: Make a function a member only if it needs direct access to the representation of a class C.4:只有 ...

  6. C++核心准则ES.56​:只在需要将一个对象显式移动到另外的作用域时使用std::move​

    ES.56: Write std::move() only when you need to explicitly move an object to another scope ES.56:只在需要 ...

  7. C++核心准则边译边学-目标之外

    In.not: Non-aims(目标之外) The rules are not intended to be minimal or orthogonal. In particular, genera ...

  8. C++核心准则ES.40:避免复杂的表达式

    ES.40: Avoid complicated expressions ES.40:避免复杂的表达式 Reason(原因) Complicated expressions are error-pro ...

  9. C++核心准则ES.30: 不要使用宏进行程序中的文本操作​

    ES.30: Don't use macros for program text manipulation ES.30: 不要使用宏进行程序中的文本操作 Reason(原因) Macros are a ...

最新文章

  1. LeetCode简单题之找出数组排序后的目标下标
  2. Fastlane- app自动编译、打包多个版本、上传到app store
  3. 【python教程入门学习】用pyecharts绘制带动画效果的“时间轮播图
  4. wince下sources\sources.cmn\Makefile.def的相关作用
  5. 在网页中直接显示office文档,
  6. matlab repmat()
  7. C# 托管资源与非托管资源
  8. git安装步骤_详解linux安装git的方法步骤(超实用)
  9. ASP.NET AJAX入门系列(8):自定义异常处理
  10. 函数开始处的MOV EDI, EDI的作用
  11. PHP高级——抽象类与接口的区别(转)
  12. 李开复看衰语音识别 这些国内外巨头却有话要说!
  13. 安装程序Repack攻略之MSI篇
  14. [转]PDF在线阅读开发经验(FlexPaper+SWFTools+SaveAsPDFandXPS)
  15. stm32f103——基本定时器与定时器中断
  16. 计算机审计试题及答案,计算机审计练习题及答案
  17. MT4/MQL4入门到精通EA教程第六课-MQL语言常用函数(六)-常用订单功能函数
  18. <汇编>七种寻址方式
  19. 租房“免押金”大面积落地,年底租房人群迎来一点甜
  20. 【渝粤题库】广东开放大学 行政管理学 形成性考核

热门文章

  1. Mifare Ultra Light 非接触式IC卡发卡总结
  2. C#四种相等性判断方法 equals,referenceEquals
  3. css before 文字前面竖线_前端进阶: css必知的几个底层知识和技巧
  4. 小程序获取用户信息_App自评估指南:小程序也可参考,第三方获取信息需获用户授权...
  5. 极光推送收费标准_刚刚,安卓统一推送又有进展了!华为率先...
  6. 《深入浅出数据分析》第十二章——R语言lattice数据包
  7. 6个班的计算机课平均分给,计算机六道题
  8. 硬盘温度70度正常吗_读懂固态硬盘:NVMe SSD的SMART健康数据这样看
  9. java序列化_夯实Java基础系列22:一文读懂Java序列化和反序列化
  10. 学生电脑哪个牌子好_常亮补光灯哪个牌子好服务至上