问题标签 [loki]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
117 浏览

c++ - 如何在两个 Loki Functor 之间正确共享具有状态的 functor?

我将 Loki::Functor 用于回调目的,我希望operator()在两个回调之间共享一个仿函数(定义了合适的成员函数的对象)。这个函子需要保持状态,以便两个回调都能看到它。

快速测试表明,使用按值传递的仿函数构造 Loki 仿函数与使用成员函数指针构造函数的结果不同:

f2演示使用成员函数指针和指向实例的指针会导致与f1. 然后f3建议自己作为在 loki 函子之间共享函子的一种可能方式。

我相信与Loki:: Functorf1支持的“复制语义”有关 - 制作了仿函数的副本,它具有新值它们之间。xf2f3

因此,我想知道是否f3是将函子的相同实际实例绑定Bar到两个 loki 函子(f2& f3)的最佳方法,或者是否有更好/更清洁的方法来按照f1语法来做到这一点?

编辑:有些人可能会问,鉴于 Loki 的年龄,我为什么要使用它?它提供了我在受限开发环境中所需要的东西,在这种环境中严格禁止全局静态(但是我确实必须从 loki/Functor.h 中删除小对象单例,但这很容易)。如果有人对替代通用函子库有建议,很高兴详细说明约束。

0 投票
2 回答
1824 浏览

c++ - Loki 多方法是否进入了 C++11?

我正在阅读Andrei Alexandrescu所应用的Modern C++ Design Generic Programming and Design Patterns关于多方法的第 11 章,这正是我试图解决的问题。本书的所有源代码都发布在一个名为Loki的库中。

问题是这本书相当旧(2001 年),并且处理了C++11 中不再适用的限制(例如,模板参数的数量不能是可变的)。我试图查找 Loki 是否已使用 C++11 重写,但最后一次修改日期为 2009 年,并且Andrei Alexandrescu 的主页上没有更新。然而,在做了一些研究之后,我觉得 Loki 有点像 Boost,因为它被合并到了标准库中。

多方法习语或它的某些部分是否已被 C++11 采用?

0 投票
0 回答
61 浏览

c++ - 检测调用函数是否为静态

我试图控制从单例对非常量成员函数的访问。我维护了一个类型列表,其中包含允许访问单例的非常量成员函数的所有类。我打算使用 BOOST_TYPEOF(this) 在编译时检测该类是否存在于类型列表中。但是,此检查对静态成员函数或非类函数无效。有没有办法在编译时检测到这一点。

0 投票
0 回答
89 浏览

c++ - 我们如何将具体对象提供给基于原型的工厂?

Loki 库为构建 AbstractFactory 模式提供了预定义的接口。特别是,我对基于原型的抽象工厂感兴趣。

假设我们有一个具有抽象实体的游戏应用程序:

和具体实体:

等等MediumHard

现在我想创建基于原型的简易级别工厂。

下面是它在 Loki 中的实现方式(Alexandrescu 的现代 C++ 设计):

所以 ConcreteFactory 看起来像:

现在我的问题是我们如何Easy从那个具体工厂定义关卡工厂?

0 投票
1 回答
213 浏览

c++ - Loki 的 SmallObjAllocator 内存分配器

loki 库本质上使用 c++ 中的通用编程我已经使用内存的小对象分配器(Loki::SmallObjAllocator)获得了代码我正在使用 Visual c++ 2010

我得到这些错误:

0 投票
0 回答
210 浏览

c++ - Loki 和 Folly C++ 库之间有什么关系?

我注意到 Andrei Alexandrescu 展示了他的“ScopeGuard”机制的两个版本——一个在 C++11 之前,一个在 C++11 之后;并且第一个版本是 Loki 库的一部分,而第二个版本是 Facebook 的愚蠢库的一部分 -直到最近,Alexandrescu 才被使用(感谢@JerryCoffin 指出那条消息)。但是Loki 网站并没有说明这种联系,Loki维基百科页面也没有。愚蠢的 Readme.md也没有- 愚蠢的资源也没有。

那么这些库是否与我上面描述的相关?

0 投票
2 回答
136 浏览

regex - 如何在 vim 命令中使用正则表达式格式化电话号码列表?

鉴于以下电话号码列表

编写一个正则表达式(在 loki 上使用 vim)重新格式化数字,使它们看起来像这样

我正在使用搜索和替换命令。我使用反向引用的正则表达式:

仅格式化第一行。有任何想法吗?

0 投票
1 回答
193 浏览

c++ - 为 ScopedGuard 禁用“未使用的变量”

我和 Andrei Alexandrescu 和 Petru Marginean范围内的守卫对象一起玩

当你用 -Wall -Werror 编译它时,你会得到“未使用的变量”错误。以下代码取自LOKI

问题在于用法:

这只是

我使用宏在应对结束时采取一些行动:

这样,用户就可以调用

这个宏很难禁用未使用的警告。

有人可以帮助我更好地理解这一点,并可能在不使用 -Wno-unused-variable 的情况下提供解决方案吗?

0 投票
2 回答
699 浏览

c++ - c ++模板专业化和模板参数的数量

我刚刚开始学习模板,我正在浏览一个实现 TypeList 的示例,并看到了 TypeList 的 Length 方法的实现。

我的问题是主长度模板只有 1 个参数(TList),但专业化有 2 个参数。这怎么可能,我在其他地方读到,专业化的参数数量较少

0 投票
2 回答
2132 浏览

cordova - in-memory DB (lokiJS) vs regular indexedDB

I was looking for a wrapper library for indexedDB that can store data.

(Specific use is for a JavaScript cordova app but one that can also work in the browser)

I have found LokiJS which seems feasible. However, LokiJS says it's an:

In-memory JavaScript Datastore with Persistence

But I don't understand what "in-memory" means. I tried googling, looking around, but couldn't find a concise explanation...

How is "in-memory" indexedDB different from regular indexedDB?