小编dtl*_*rek的帖子

微软的债券和谷歌的协议缓冲区之间的差异

最近(2015年1月)微软开源债券,他们用于处理模式化数据的框架.在许多方面,它类似于谷歌的协议缓冲区.

这两者之间最大的区别是什么?什么是利弊,也就是说,在哪种情况下我想使用一种,而不是另一种情况?当然,我不是在谈论与其他项目或现有API的一致性等明显的事情,而是两个库的功能.举个例子,bonded<T>如果我没记错的话,Bond会在Protocol Buffers中没有对应的.

serialization marshalling protocol-buffers bond

23
推荐指数
1
解决办法
8820
查看次数

gcc/g ++中的尾递归

我试图搜索,但无法找到:函数的必要条件是什么,以便gcc优化尾递归?是否有任何参考或列表包含最重要的案例?由于这是版本特定的,我的兴趣是4.6.3或更高版本(越新越好).但事实上,任何具体的参考资料都将受到高度赞赏.

提前致谢!

recursion gcc tail-recursion compiler-optimization

8
推荐指数
1
解决办法
4989
查看次数

非 constexpr 调用的 constexpr 结果

最近,我很惊讶以下代码也在 clang、gcc 和 msvc 中编译(至少在它们当前的版本中)。

struct A {
    static const int value = 42;
};

constexpr int f(A a) { return a.value; }

void g() {
    A a;  // Intentionally non-constexpr.
    constexpr int kInt = f(a);
}
Run Code Online (Sandbox Code Playgroud)

我的理解是,调用f不是 constexpr 因为参数i不是,但看来我错了。这是适当的标准支持的代码还是某种编译器扩展?

c++ constexpr c++11 constexpr-function

8
推荐指数
1
解决办法
761
查看次数