小编use*_*299的帖子

boost :: asio和Active Object

我已经实现了一些基于模块的Active Object设计模式.这是非常简单的实现.我有Scheduler,ActivationList,Requests和Futures来获得响应.我的要求是这样的:

  • 对活动对象的访问应通过在其自己的线程中执行其方法来序列化(主要请求和主动对象设计模式的假设)
  • 调用者应能够指定请求执行的优先级.这意味着如果等待执行的请求超过零,则应按分配给每个请求的优先级对它们进行排序.首先应执行具有更高优先级的请求,因此如果在ActivationList上总会有一些待处理的请求,并且它们将具有比给定请求更高的优先级,则该请求将永远不会被执行 - 这对我来说没问题
  • 应该可以指定列表中待处理的最大请求数(限制内存使用量)
  • 应该可以使所有待处理的请求无效
  • 请求应该能够返回值(阻塞调用者)或者只是在没有值返回的情况下执行,但是在处理请求之前应该阻塞调用者或者不调用调用者,如果已经处理了请求,则调用者不重要G
  • 在请求执行之前,应执行一些保护方法以检查是否应该执行给定的请求.如果不是 - 它应该向调用者返回一些未定义的值(在我当前的实现中它是boost :: none,因为每个请求返回类型都是boost :: optional)

现在好了问题:是否可以使用boost :: asio并满足我的所有要求?我的实现正在运行,但我想使用一些可能以比我更好的方式实现的东西.此外,我想知道它的未来,不要再"重新发明轮子".

c++ design-patterns boost-asio

12
推荐指数
1
解决办法
3916
查看次数

CMake 库链接顺序

我有以下库lib_A, lib_B, lib_C, lib_D。我在我的 CMake 文件中做这样的事情(顺序很重要):

  1. ADD_LIBRARY(lib_A)
  2. ADD_LIBRARY(lib_B)
  3. ADD_LIBRARY(lib_C)
  4. ADD_LIBRARY(lib_D)
  5. TARGET_LINK_LIBRARIES(lib_B lib_C)
  6. TARGET_LINK_LIBRARIES(lib_A lib_B)
  7. ADD_EXECUTABLE(Exec)
  8. TARGET_LINK_LIBRARIES(exec lib_A)
  9. TARGET_LINK_LIBRARIES(exec lib_D)

这导致以下链接器命令。

linker -llib_A -llib_D -llib_B -llib_C
Run Code Online (Sandbox Code Playgroud)

一季度。为什么是lib_Blib_C之后lib_D

Q2。当我稍微更改 CMake 并执行以下操作时:

  1. TARGET_LINK_LIBRARIES(lib_A lib_D)
  2. TARGET_LINK_LIBRARIES(exec lib_A)

然后链接顺序是这样的:

linker -llib_A -llib_B -llib_C -llib_D
Run Code Online (Sandbox Code Playgroud)

这里lib_Blib_C之前lib_D。这意味着target_link_libraries对于可执行目标和库目标的工作方式不同。我对吗?

这里的问题是,lib_Blib_C还取决于lib_D,但我不想做target_link_libraries(lib_B lib_D)target_link_libraries(lib_C lib_D),因为我有更多的这种情况下,我将不得不为每个库做手工。当然,在 Q2 中这样做可以解决问题,但是:

Q3 - 这个订单是由 CMake 以某种方式保证的还是只是偶然的?

谢谢

gcc cmake

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

用clang解析评论

我正在尝试利用clang工具库来实现我未来的工具.我想用这个工具做的是:1.解析所有源代码(包含)并在注释中检测我的任何关键字(注释将是程序员和我的工具之间的某种接口,它将做各种各样的根据注释中的命令,其余的源代码.2.根据源代码中的命令,对其进行一些重构

重构本身将使用clang AST完成,如下例所示:http: //eli.thegreenplace.net/2014/07/29/ast-matchers-and-clang-refactoring-tools

我目前正在寻找的是如何在同一个clang工具程序中解析注释.我不想单独解析源代码,因为它必须已经在工具库中完成.

你知道如何以某种方式获取我正在通过工具库解析的源代码中包含的注释信息吗?

clang clang++

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

标签 统计

boost-asio ×1

c++ ×1

clang ×1

clang++ ×1

cmake ×1

design-patterns ×1

gcc ×1