小编Any*_*orn的帖子

C++返回值与异常性能

某处我已阅读,现代的Intel处理器具有低级别的硬件实现异常和大多数编译器利用它,到例外变得比使用返回变量结果状态较快的影响.

这是真的吗?就返回状态/响应状态而言,是否比变量更快?读取堆栈溢出的话题似乎与此相矛盾.

谢谢

c++ performance exception

5
推荐指数
2
解决办法
928
查看次数

C++静态变量

我试图设计仅头文件库,遗憾的是需要有全局静态变量(在类或命名空间中).

有没有任何方法或首选解决方案在保持标头设计的同时拥有全局静态变量?

代码在这里

c++ static

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

编译器可以优化静态局部变量的初始化吗?

在以下情况下应该采取什么行为:

class C {
    boost::mutex mutex_;
    std::map<...> data_;
};

C& get() {
    static C c;
    return c;
}

int main() {
    get(); // is compiler free to optimize out the call? 
    ....
}
Run Code Online (Sandbox Code Playgroud)

编译器是否允许优化对 的调用get()

这个想法是在多线程操作需要静态变量之前对其进行初始化

这是更好的选择吗?:

C& get() {
    static C *c = new C();
    return *c;
}
Run Code Online (Sandbox Code Playgroud)

c++ static compiler-optimization

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

elisp mapcar + lambda + defmacro帮助

我正在尝试使用宏生成函数:

(defmacro make-my-emacs-command-region (cmd name)
  (list 'defun (intern (format "my-emacs-command-%s-%s" cmd name))
        '(&optional arg)
        (list 'interactive "p")
        (list (intern (format "mark-%s" name)) 'arg)
        (list (intern (format "my-emacs-command-%s-region" cmd))
              '(region-beginning) '(region-end))))
Run Code Online (Sandbox Code Playgroud)

发电机:

(mapcar (lambda (a) (make-my-emacs-command-region a buffer))
        '(foo bar))
Run Code Online (Sandbox Code Playgroud)

但我得到:

my-emacs-command-a-buffer
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我如何强制传递价值a

lisp emacs macros elisp

5
推荐指数
2
解决办法
749
查看次数

使用 lambda 进行参数包扩展

我正在尝试实例化一个函数表(以模拟switch

\n\n
  template<size_t ... N>\n  int f(std::index_sequence<N...>, int k)\n  {\n    static auto f_table = { []() { return N; }... };\n    auto f = f_table.begin() + k;\n    assert((*f)() == k);\n    return (*f)();\n  }\n
Run Code Online (Sandbox Code Playgroud)\n\n

失败了error: parameter packs not expanded with \xe2\x80\x98...\xe2\x80\x99:

\n\n

我可以使用额外的包装函数,但是为什么 lambda 会失败,有解决方法吗?

\n

c++ variadic-templates

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

Python 3k中还有哪些功能工具?

我已经阅读了几个关于从未来的python中删除几个函数函数的条目,包括map和reduce.

有关功能扩展的官方政策是什么?
lambda函数会留下来吗?

python functional-programming python-3.x

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

C++虚函数执行效率

我试图更好地了解虚函数的性能,这里是一个示例代码:

struct Foo {
    virtual void function1();
    virtual void function2() { function1(); }
};

struct Bar : Foo {
    virtual void function1();
}

Bar b;
Foo &f = b;

b.function2();
b.function1();
f.function2();

对于代码示例的最后三行中的三个调用中的每一个,是否所有这些调用都必须在虚拟表中查找函数指针?必须为f对象执行多少次查找.曾经可以被编译器内联?

谢谢

c++ virtual function

4
推荐指数
2
解决办法
1266
查看次数

C/C++将signed char打包成int

我需要将四个带符号的字节打包成32位整数类型.这就是我的目标:

int32_t byte(int8_t c) { return (unsigned char)c; }

int pack(char c0, char c1, ...) {
  return byte(c0) | byte(c1) << 8 | ...;
}
Run Code Online (Sandbox Code Playgroud)

这是一个很好的解决方案?它是便携式的(不是通信意义上的)吗?是否有现成的解决方案,或许可以提升?

问题我最关心的是将负位从char转换为int时的位顺序.我不知道应该是什么样的正确行为.

谢谢

c c++ signed byte packing

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

C++可以将本地类引用传递给函数吗?

我想知道是否允许以下​​内容:

template < class C >
void function(C&);

void function() {
  class {} local;
  function(local);
}
Run Code Online (Sandbox Code Playgroud)

谢谢

c++ local-class

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

C++提升线程ID和Singleton

很抱歉本周会有这么多问题.

我假设返回的线程索引thread.get_id是特定于实现的.在pthreads的情况下,索引是否被重用?IE,如果线程0运行并加入,是否会在具有不同ID之后启动线程?

我之所以要问这是需要实现单一模式的转折:每个线程都有自己的实例.我知道这听起来很疯狂,但线程控制硬件(cuda),即使在线程级别也不允许设备内存共享.
实现这种模式的好方法是什么?

c++ singleton multithreading boost

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