小编Mat*_* G.的帖子

像CLR和JVM这样的运行时是否能够使用Haswell TSX指令?

在阅读Anandtech的'Haswell TSX'(转换内存屏障)之后,我立刻想知道CLR/JVM是否能够在C#/ Java/Scala/F#中使用这些用于高度并行的应用程序(C#Rx/TPL/TFD).

clr transactional-memory intel

16
推荐指数
3
解决办法
2176
查看次数

块返回值时调用的是什么?

我最近遇到了这个代码,这对我来说看起来不合法(但是gcc编译它).我不介意构造,因为它想要一个名字:

#define MAX(a,b) \
({ \
    typeof(a) _a = (a); \
    typeof(b) _b = (b); \
    (_a > _b) ? (_a) : (_b); \
})
Run Code Online (Sandbox Code Playgroud)

显然,最后一个语句的值将作为由命名空间限定的表达式的"值"返回.

编辑:谢谢你们的答案.事实证明,这是对称为Statement Expressions的普通C的扩展.

c c++ gcc terminology

7
推荐指数
2
解决办法
2073
查看次数

覆盖超类联合的子类联合ontop

我想知道是否可以将成员附加到子类中的C++联合.

class A { 
    ...
    union { int a; int b; };
 };

 class B : public A {
     ...
     int c; //<- Can this use the same storage as the union?
 };
Run Code Online (Sandbox Code Playgroud)

一个更具体的例子是标记联合的想法,你希望有一个子类为联合添加一个类型.

c++ inheritance unions

7
推荐指数
1
解决办法
354
查看次数

让 CMake 不要对它不理解的来源保持沉默?

假设你有一个非常简单的 CMakeLists.txt

add_executable(silent T.cpp A.asm)
Run Code Online (Sandbox Code Playgroud)

silentCMake 会愉快地生成一个用于构建, 的C++ 目标T.cpp,但会默默地删除对 的所有引用A.asm,因为它不知道如何处理后缀。

有没有办法让 CMake 大声抱怨它不理解的源文件(以帮助将 Makefile 移植到 CMake)。

cmake

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

CMake 占位符如何工作?

在 CMake 的支持库中,您将看到如下所示的命令定义:

 set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT "<CMAKE_ASM${ASM_DIALECT}_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
Run Code Online (Sandbox Code Playgroud)

/usr/share/cmake-3.5/Modules/CMakeASMInformation.cmake例如在我的安装中)

这里关注我的对象是占位符(短语得到这里)<DEFINES> <INCLUDES> <FLAGS>; 我试图弄清楚它们如何与 CMake 的其余部分进行交互。

鉴于我能够通过设置将标志传递给我的汇编程序CMAKE_ASM-ATT_FLAGS,我有点认为可能有一些魔法将占位符映射到变量名称......但设置CMAKE_ASM-ATT_INCLUDES似乎没有做任何事情。

那么<INCLUDES>这里怎么会有人呢?可以以特定于目标的方式填充吗?

cmake

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

Ruby eval在irb中与文件中的行为不同

此代码适用于irb:

irb(main):037:0> eval <<-EOS
irb(main):038:0" #{attribute} = "host"
irb(main):039:0" puts machine
irb(main):040:0" EOS
host
=> nil
irb(main):041:0> puts machine
host
=> nil
irb(main):042:0> puts attribute
machine
=> nil
irb(main):043:0>
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试执行与ruby脚本相同的代码时,我收到以下错误:

../autosys/convert_jil_to_zapp.rb:40: undefined local variable or method `machine' for main:Object (NameError)
        from ../autosys/convert_jil_to_zapp.rb:29:in `each_line'
        from ../autosys/convert_jil_to_zapp.rb:29
        from ../autosys/convert_jil_to_zapp.rb:27:in `each'
        from ../autosys/convert_jil_to_zapp.rb:27
pi929c1n10 /ms/user/h/hirscst/ruby/autosys 77$ gvim try.rb
pi929c1n10 /ms/user/h/hirscst/ruby/autosys 78$ chmod +x try.rb
pi929c1n10 /ms/user/h/hirscst/ruby/autosys 79$ ./try.rb
host
./try.rb:8: undefined local variable or method `machine' for main:Object (NameError)
Run Code Online (Sandbox Code Playgroud)

有谁能解释为什么?

ruby eval

4
推荐指数
1
解决办法
1463
查看次数

氧分组

我对Doxygen中的页面和组有疑问。我有一个项目,在这里我将类与@defgroup和@ingroup cmds分组。到目前为止,这很好。

现在,我想为带有降价页面的项目添加特殊文档。这些页面应显示在专用模块(组)中。我试图用@page和@subpage cmds创建页面。效果很好,但是页面在菜单中显示为纯色。

因此,我尝试使用@ingroup将它们添加到组中。但这不起作用,正如我猜到的那样。是否可以将页面添加到模块(组)?

结果应如下所示:

Project
|-- Modules
| |-- "Module1"
| | |-- documentation page1 (from *.md file)
| | |-- class documentation
| |-- "Module2"
| | |-- documentation page2
| | |-- class documentation
Run Code Online (Sandbox Code Playgroud)

我希望你可以帮助我!

documentation doxygen

3
推荐指数
2
解决办法
1万
查看次数