或者,特征是否指的是利用元功能的特定方式?
如果它们不是同义词,请给我指出一些非元功能的特征或非特征元功能的例子。可能会喜欢STL或Boost库中的实际工作代码,而不是人为的玩具示例。
我想看看C ++编程领域的专家如何使用这些术语。我不确定它们是否有权威的定义...
提前致谢!
澄清:不是我在寻找特征或元功能的任何示例。我在日常工作中一直使用数十(如果不是数百)。“ Venn0110”。通过Commons在Public Domain下获得许可。
最佳答案
“ Meta”是用于模板编程的C ++术语。一个清晰的例子是Boost Meta Programming Library(MPL)。
从这个意义上说,元函数是一种函数,其域不是对象,而是C ++构造。因此,公共输入是类型,普通功能和其他模板。
一个简单的元函数例如是template<typename T> using Foo = Bar<T, int>
,其输入类型为T
,输出类型为Foo<T>
。是的,是微不足道的,但是普通函数也可以是微不足道的。
特征是一个元函数,其共域是一个常量表达式,通常为布尔值。例如。 is_foo<T>::value
显然是布尔值。在这种意义上,最早的特征是sizeof(T)
,其共域是size_t
。