小编Any*_*orn的帖子

我如何编写一个排除而不是匹配的正则表达式,例如,不是(this | string)?

我难以设法创建一个排除组的Emacs正则表达式.[^]排除集合中的单个字符,但我想排除特定的字符序列:类似的东西[^(not|this)],以便包含"not"或"this"的字符串不匹配.

原则上,我可以写([^n][^o][^t]|[^...]),但还有另一种更清洁的方式吗?

regex emacs elisp regex-negation regex-group

24
推荐指数
5
解决办法
3万
查看次数

C++模板陷阱

刚才我不得不浏览网站,找出为什么模板类模板成员函数给出了语法错误:

template<class C> class F00 {
   template<typename T> bar();
};
...
Foo<C> f;
f.bar<T>(); // syntax error here
Run Code Online (Sandbox Code Playgroud)

我现在意识到模板括号被视为关系运算符.要执行预期的操作,需要以下奇怪的语法,cf 模板:模板函数与类的模板成员函数不兼容:

f.template bar<T>();
Run Code Online (Sandbox Code Playgroud)

您遇到的C++/C++模板的其他奇怪方面和问题是不是您认为是常识的东西?

c++ templates

23
推荐指数
3
解决办法
5348
查看次数

Emacs - 覆盖缩进

我有一个多重嵌套的命名空间:

namespace first {namespace second {namespace third {
              // emacs indents three times
    // I want to intend here
} } }
Run Code Online (Sandbox Code Playgroud)

所以emacs缩进到第三个位置.但是我只想要一个缩进.
是否有可能简单地完成这种效果?

c++ emacs namespaces indentation

23
推荐指数
2
解决办法
5819
查看次数

C++编译器和后端/前端

对于我自己的教育,我很好奇编译器使用哪个C++前端和后端.您能否告诉我使用以下技术的地方以及它们具有哪些标志/优势?

  • Open64 - 它是后端,前端还是两者兼而有之?哪些编译器使用它?我在CUDA编译器中遇到它.

  • EDG - 据我所知,这是英特尔编译器和Comeau的前端使用.其他编译器使用它吗?我在boost源代码中找到了不少引用它.

  • ANTLR - 这是一般解析器.有没有常见的编译器使用它?

关于编译器:

  • 使用前端/后端gcc编译器套件使用?它与其他编译器有共同的遗产吗?

  • 前端/后端PGI和PathScale编译器使用什么?

  • 前端/后端XL编译器使用的是什么(IBM产品).

互联网上的深入链接或您的个人技术诀窍会很棒.我做了一些谷歌搜索,但我通常遇到的信息相当肤浅.

谢谢.

c++ compiler-construction frontend backend

21
推荐指数
4
解决办法
5169
查看次数

乘以0优化

假设我有:

double f(const double *r) {
    return 0*(r[0]*r[1]);
}
Run Code Online (Sandbox Code Playgroud)

如果值可能是inf或nan,编译器是否应该能够优化分段,还是必须执行操作?

gcc -O3 -S test.c:

        .file   "test.c"
        .text
        .p2align 4,,15
.globl f
        .type   f, @function
f:
.LFB0:
        .cfi_startproc
        movsd   (%rdi), %xmm0
        mulsd   8(%rdi), %xmm0
        mulsd   .LC0(%rip), %xmm0
        ret
        .cfi_endproc
.LFE0:
        .size   f, .-f
        .section        .rodata.cst8,"aM",@progbits,8
        .align 8
.LC0:
        .long   0
        .long   0
        .ident  "GCC: (Ubuntu 4.4.3-4ubuntu5) 4.4.3"
        .section        .note.GNU-stack,"",@progbits
Run Code Online (Sandbox Code Playgroud)

似乎没有消除?

啊哈:

gcc -O3  -ffast-math  -S test.c

        .file   "test.c"
        .text
        .p2align 4,,15
.globl f
        .type   f, @function
f:
.LFB0:
        .cfi_startproc
        xorpd   %xmm0, …
Run Code Online (Sandbox Code Playgroud)

c c++ optimization

21
推荐指数
2
解决办法
1826
查看次数

C++运行时,显示异常消息

我在linux上使用gcc来编译C++代码.有些例外情况不应该处理,应该关闭程序.但是,我希望能够显示异常字符串:

例如:

throw std::runtime_error(" message");不显示消息,仅显示错误类型.我也想显示消息.有办法吗?

它是一个库,我真的不想把catch语句和库用户决定.但是,现在库用户是fortran,它不允许处理异常.原则上,我可以将处理程序放在包装器代码中,而不是如果有方法的话

c++ exception

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

C++元编程doxygen文档

我正在记录一些使用元编程的代码,例如:

 template<rysq::type A, rysq::type B, rysq::type C, rysq::type D, class Transform>
 struct Kernel<meta::braket<A,B,C,D>, Transform,
               typename boost::enable_if<
                   quadrature<meta::braket<A,B,C,D>, Transform> >::type>
 : Eri <Transform> {
Run Code Online (Sandbox Code Playgroud)

使用doxygen记录这种构造的好方法是什么?

c++ templates doxygen

19
推荐指数
1
解决办法
5590
查看次数

python,格式化字符串

我正在尝试使用lazy参数构建一个格式字符串,例如我需要像:

"%s \%s %s" % ('foo', 'bar') # "foo %s bar"
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

python

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

elisp宏写一个函数?

我写了一些几乎相同的函数,除了它们的名字.例如:

; x is name, such as function/paragraph/line/etc.
(defun my-x-function
 (interactive)
 (mark-x) (do-more-stuff) (modify-x))
Run Code Online (Sandbox Code Playgroud)

有没有办法自动生成这样的功能?我有一种感觉这是宏做的,但我不知道如何使用它们.任何帮助,也许包括一个小例子都会很棒.

谢谢!

emacs macros elisp function

17
推荐指数
1
解决办法
2413
查看次数

当分母已知时,更快的整数除法?

我正在研究GPU设备,它具有非常高的除法整数延迟,数百个周期.我希望优化分歧.

分母中的所有除法都在集合{1,3,6,10}中,但分子是运行时正值,大约为32000或更小.由于内存限制,查找表可能不是一个好的选择.

你能想到其他选择吗?我曾想过计算浮点反转,并使用它们来乘以分子.

谢谢

PS.谢谢你们.位移黑客真的很酷.为了从舍入中恢复,我使用以下C段:

// q = m/n
q += (n*(j +1)-1) < m;
Run Code Online (Sandbox Code Playgroud)

optimization performance integer division

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