或者,trait 可能是指利用元函数 的特定方式?
如果它们不是同义词,请指出一些特征的例子,这些例子不是元函数或不是特征的元函数。一段实际工作的代码,可能在 STL 或 Boost 库中,比人为的玩具示例更受欢迎。
我想看看 C++ 编程领域的专家如何使用这些术语。不知道有没有权威的定义...
提前致谢!
澄清:我并不是在寻找特征或元函数的任何示例。我在日常工作中使用了数十个(如果不是数百个)。
最佳答案
“元”是模板编程的 C++ 术语。一个明显的例子是 Boost 元编程库 (MPL)。
从这个意义上说,元函数是一个函数,其域不是对象而是 C++ 构造。因此,常见的输入是类型、普通函数和其他模板。
例如,一个简单的元函数是 template<typename T> using Foo = Bar<T, int>
它的输入类型为 T
并作为其输出类型 Foo<T>
.微不足道,是的,但普通函数也可以是微不足道的。
特征是一个元函数,其辅域是一个常量表达式,通常是 bool 值。例如。 is_foo<T>::value
显然是 bool 值。从这个意义上说,最古老的特征是 sizeof(T)
其密码域为size_t
.
关于C++: "trait"和 "meta-function"是同义词吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32471222/