本文主要解释“C如何定义模板参数的概念”。本文的解释简单明了,易学易懂。接下来,请跟随边肖的思路一起学习学习《C如何定义模板参数的概念》!
T.10:为所有的模板参数定义概念
Reason(原因)
正确性和可读性。模板参数的假定含义(语法和语义)是模板接口的基础。一个概念极大地改善了模板的文档和错误处理。为模板参数指定概念是一个强大的设计工具。
准确性和可读性。模板参数的假定含义(语法和语义)是模板接口的基础。这个概念极大地改进了模板的文档和错误处理。为模板参数定义概念是一个强大的设计工具。
Example(实例)
templatetypename Iter,typename Val
//需要输入迭代器
//Equality _ comparable value _ typeIter,Val
Iter find(Iter b,Iter e,Val v)
{
//.
}或者更简单地说,等同于:
或者使用以下功能等同但更简单的方式:
templateInput_iterator Iter,typename Val
//需要Equality _ comparable value _ typeIter,Val
Iter find(Iter b,Iter e,Val v)
{
//.
}
Note(注意)
“概念”在国际标准化组织技术规范:概念中定义。一组标准库概念的草稿可以在另一个ISO ts :范围中找到GCC 6.1和更高版本支持的概念。因此,我们在例子中评论概念的使用;也就是说,我们仅将它们用作正式的注释。如果使用GCC 6.1或更高版本,可以取消注释它们:
“概念”由ISO技术规范:概念定义。一套标准库概念的初步版本可以在另一个国际标准化组织技术规范:范围中找到。GCC6.1将在未来支持概念。因此,我们注释掉示例代码中使用概念的部分;也就是说,我们只用它们作为标准音符。如果使用GCC6.1之后的版本,可以打开评论。
templatetypename Iter,typename Val
需要输入迭代器
等式_比较值_类型项,值
Iter find(Iter b,Iter e,Val v)
{
//.
}
Note(注意)
Planetypename(ora uto)是约束最少的概念。只有当只能假设“它是一种类型”时,才应该很少使用它。这通常只在我们操作纯表达式树时需要(作为模板元编程代码的一部分),推迟了类型检查。
的直接类型名(或auto)是最小约束的概念。应该很少使用,仅限于表达“它是一种类型”。这通常只有在我们操作纯表达式树和延迟类型检查(作为模板元编程的一部分)时才有必要。
感谢阅读。这就是“C如何定义模板参数的概念”的内容。学习完这篇文章,相信你对C如何定义模板参数的概念有了更深的理解,具体用法还需要实践验证。在这里,边肖将为您推送更多关于知识点的文章,敬请关注!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/114474.html