问题描述
在 C++ 语言中,许多人会遇到各种具有指定名称的设计模式,我们将在其中称为 Idiom,例如 SFINAE
、RAII
、CRTP
、{{ 1}} 等...
以最基本的形式考虑以下代码片段...
polymorphism
这里我使用模板化 lambda 生成或创建类 template<typename T>
auto make_object = [](T val) {
class Foo {
public:
Foo(T val) : value_{val} {}
T value() const { return value_; }
private:
T value_;
};
Foo foo(val);
return foo;
};
// in some other code block,scope,or translation
int main() {
auto bar = make_object<float>( 3.1f );
auto val = bar.value();
return 0;
}
的实例,该实例完全包含(声明和定义)在 Lamba 主体的实现范围内并通过使用自动类型推导变量 Foo
属于 bar
类型,您可以在其中处理和访问它,就好像您已将 Foo
声明为它自己的单独类一样......这种类型的设计模式是否具有特定的惯用语?我不知道的名字?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)