C++ 模板类型的静态 lambda 成员的构造
C++ Construction of Static Lambda Member of Template type
我有一个包含静态成员的类,该成员是一个lambda。 lambda 确实有固定的参数,但可能有不同的捕获。这就是问题所在。此静态成员不是默认可构造的。
它也必须是静态的,我不能像在嵌入式系统上那样使用类型擦除模式。任何人都有任何想法或模式来解决这个问题。
我可以在测量大小的字节数组上进行就地构造,但这会产生自己的问题,我想避免它。
我有但不喜欢的是:
编辑 1 : 改进的示例更完整的示例可在此处找到: https://wandbox.org/permlink/UMwsXSR6c2QYleiU
编辑2:进一步改进的示例上述改进版本: https://wandbox.org/permlink/VTvGNlFRCNYG4J00
编辑3:修复了return_t https://wandbox.org/permlink/tl4BaH1zbutMV2nU 的错误
你可能想做这样的事情
template <class T>
class StaticWrapper
{
static T* t = nullptr;
StaticWrapper(T&& tt) {
static T ttt {tt};
t = &ttt;
}
};
同样的想法,但没有挑剔的演员和新的放置。
相关文章:
- 如何将lambda作为模板类的成员函数参数
- 使用成员在类中创建 lambda 表达式
- C++ 模板类型的静态 lambda 成员的构造
- Visual C++: MSVC vs. GCC+CLANG: 处理 lambda 捕获类成员变量,正确的方法是什么?
- 模拟成员函数调用 lambda
- C++将 lambda 函数另存为成员变量,而不使用函数指针进行优化
- C++ lambda - 捕获静态成员变量
- 从成员函数签名中自动推导lambda参数
- 在析构函数之后,围绕成员函数的C++lambda包装器是如何工作的
- 无法通过引用捕获 lambda 中的成员变量
- 是否允许在作为静态数据结构成员的lambda函数中捕获变量
- 我正在尝试找到一个特定的结构成员,该成员是使用 lambda 函数的结构向量
- 使用 lambda 函数初始化静态数据成员
- 处于默认参数位置的 Lambda 无法访问好友成员。这是编译器错误吗?
- 捕获 lambda 函数C++成员变量
- 将类成员指针传递给 Lambda 捕获列表 c++11
- 在 C++11 中创建并返回包含 lambda 成员变量的类
- 调用 lambda 的结构/类成员时程序崩溃并"bad_function_call"
- Clang声称通用lambda参数的constexpr成员不是constexpr
- 静态(可能是constexpr)数据成员lambda