用什么来替代C中的概念(即将推出的功能)?

前端之家收集整理的这篇文章主要介绍了用什么来替代C中的概念(即将推出的功能)?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
用什么来替代C中的概念(即将推出的功能)?

你可能听说过C中的概念.这是一个功能
允许您指定模板中类型的要求.

我正在寻找一种方法来做到这一点,我找到的最好的是
Stroustrup的书中他将谓词与static_assert一起使用,如下所示:

template<typename Iter,typename Val>
Iter find(Iter b,Iter e,Val x) 
{
    static_assert(Input_iterator<Iter>(),"find(): Iter is not a Forward iterator");

    // Rest of code...
}

如果你使用其他方法或者这个方法有问题,请告诉我.

解决方法

好吧,有几次我需要类似概念的功能,我转向 Boost Concept Check.它不是最漂亮的库,但它似乎已经内置了很多东西.

我使用你的方法的唯一问题是需要编写所有特征类.我没有广泛使用它,但可能已经为Boost做了很多常见的事情.

原文链接:https://www.f2er.com/c/117935.html

猜你在找的C&C++相关文章