我有一个包含静态成员的类,该成员是lambda。 Lambda确实具有固定的参数,但可能具有不同的捕获。这就是问题所在。默认情况下,此静态成员不可构造。
它也必须是静态的,我不能像在嵌入式系统上那样使用类型擦除模式。任何人都有解决此问题的想法或模式。
我可以在已测量大小的字节数组上进行就地构造,但这会产生自己的问题,我想避免这种情况。
我有但不喜欢的是:
编辑1:改进的示例 在此处找到更完整的示例: https://wandbox.org/permlink/UMwsXSR6c2QYleiU
编辑2:进一步改进的示例 上面的改进版本: https://wandbox.org/permlink/VTvGNlFRCNYG4J00
编辑3:修复了带有return_t的错误 https://wandbox.org/permlink/tl4BaH1zbutMV2nU
答案 0 :(得分:1)
您可能想做这样的事情
template <class T>
class StaticWrapper
{
static T* t = nullptr;
StaticWrapper(T&& tt) {
static T ttt {tt};
t = &ttt;
}
};
想法相同,但没有挑剔的演员表和新的位置。