小编Gno*_*lon的帖子

C++中的通用(几乎)自描述参数与GUI相结合?

我面临以下难题:我们的软件有一个算法对象的抽象基类.所有这些对象都有一个共同的execute()方法,例如:

class Algorithm
{
public:
  // [...]
  virtual void execute() = 0;
  // [...]
};
Run Code Online (Sandbox Code Playgroud)

对于我们想要实现的每个算法,我们只是从基类继承并将所有加载的算法对象存储在一个中心位置.到现在为止还挺好.

现在的问题在于算法的参数.我们希望能够为每个算法描述需要设置的参数(由外部类).为此,我们为每个算法提供了一个ParameterList包含其参数的对象.我应该澄清一下,对于我们来说,参数由某种类型(例如int)和标签(例如"迭代次数")组成.

现在,当我们想要连接ParameterList到某种GUI 时,问题就开始了.显然,我们的算法应该没有我们正在使用的图形API(Qt,GTK等)的"知识".然而,在同一方面,我们希望能够在语义上描述算法参数,例如通过指定算法需要文件名.然后如何显示此文件名取决于GUI.

有没有办法将它ParameterList与某种语义类型的知识结合起来?

我意识到这个问题听起来很模糊.但是,我不允许发布任何非平凡的代码示例(出于NDA原因).那么,过去有没有人遇到过类似的问题?

包装起来:我们希望我们的对象能够描述GUI所需的参数,而不需要知道GUI的确切细节.

c++ oop templates

11
推荐指数
1
解决办法
278
查看次数

如何实现`boost :: signals2`中的信号签名?

我已经boost::signals2在我的项目中使用了一段时间.令我感到羞耻的是,我仍然不明白它们是如何在引擎盖下实现.我的问题已经从信号的定义开始了.如何定义如

boost::signals2::signal< void (bool, double) > 
Run Code Online (Sandbox Code Playgroud)

如何处理?我可以从实现细节中看到签名成为一个适当命名的模板参数Signature.但是,我不懂语法.C++标准是否允许这种语法?如果以这种形式提供功能签名,信号如何"存储"?

我已经尝试查看源代码,但无法找到此语法的解释.任何帮助,将不胜感激.

c++ implementation templates boost boost-signals2

6
推荐指数
1
解决办法
414
查看次数

提升标记生成器将引用的字符串视为一个标记

有没有办法让Boost标记生成器分割到字符串下方而不拆分引用的部分?

string s = "1st 2nd \"3rd with some comment\" 4th";

Exptected output:
1st
2nd
3rd with some comment
4th
Run Code Online (Sandbox Code Playgroud)

c++ boost tokenize

5
推荐指数
1
解决办法
1168
查看次数

标签 统计

c++ ×3

boost ×2

templates ×2

boost-signals2 ×1

implementation ×1

oop ×1

tokenize ×1