V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  ipwx  ›  全部回复第 65 页 / 共 201 页
回复总数  4003
1 ... 61  62  63  64  65  66  67  68  69  70 ... 201  
@Austaras ummm 我又不熟 Rust,我怎么和你讨论这个问题。

反正前段时间我找 lock-free non-blocking mpmc queue 的时候,github 资料很多,论文也是用 C++ 写的。Rust…… 它太新了啊,这种偏门玩意儿万一找不到怎么办呢?对吧。
@YUCOAT 老哥,C++ coroutines 是个半成品啊,面向库作者的。就好像只教了你极限的概念,却不教你怎么用微积分,这看得懂才怪。我又不想 contribute to boost,那我选择等一等。
@ericgui 其实 shared_ptr 很好用,相信我。
2021-07-15 13:04:38 +08:00
回复了 mer 创建的主题 C++ C++ 中 Lambda 对变量的捕获居然是在声明时就做了
楼主可能和 JS 搞起来了。但是 JS 那种其实不是更奇怪吗。

for (int i=0; i<10; ++i) {
task_list.emplace([i] () { std::cout << i << std::endl; });
}

这种用法不挺符合常识吗?
@dqzcwxb 呃我查了一下,zgc 最大停顿是 10ms 啊,不太行。我这边要求每个请求都非常稳定低延迟,这不是概率问题,是全部都要。
@dqzcwxb 啊看错了一个单位。0.05ms 确实挺厉害,不过我这边也没有 jvm 大神不懂这些
@Austaras ummm 生态问题吧。至少 conan.io 上 c++库随便搜。还有就是我挺熟 c++
@dqzcwxb 太慢。我的需求是每个事务稳定的低延迟,到 1ms 以及以下量级。有些地方我日后可能还得考虑做无锁,因为内核调用 20us,不太能接受。
@dynastysea 还有,一开始就考虑 C++ 是因为 Java/C# 这些带 GC 的语言有 GC 延迟。而我这里需要非常确定性的低延迟执行时间,又是各种多线程的,所以只能配合 shared_ptr 用 C++ 了。
@dynastysea 主是写起来就需要。
----

我上半年写了个 3.5 万行的 C++ 项目,需要低延迟高性能。如果没用 C++17 估计得 5 万行了。

最常用的新特性:

1 、for (const auto& : ...)
2 、T&&,这能让我明确指定一些情况下不需要拷贝而是移动栈对象。(对高性能程序很重要)
3 、template <typename Args...>。我用了很多这个来简化写代码。
4 、template <typename Fn> void someWrapper(const Fn& fn)。这就是所谓的高阶函数,特别简化代码。
常见用法比如 void wrapError(const Fn& fn)
还有就是需要对不同 fn 的进行相似的初始化、返回值进行相似的操作。
5 、template <bool XXX> void f(...) { if constexpr (XXX) { } }。这个特别好用。因为有些分支在有些情况下是不运行的,你想要减少 latency,就用 constexpr 去直接暴力优化掉这些代码。( constexpr 是编译期判断)
6 、std::unique_ptr, std::shared_ptr 。这不是新特性了。但是配合 T&& 和 std::move 就很好用。

上面这些都挺省我代码量的。一些其他零碎可能我用到的不够多就不记得了。
2021-07-15 11:18:49 +08:00
回复了 woshipanghu 创建的主题 SQL Server 做外贸系统遇到订单日期的问题, sql 不知道该怎么写
时间戳就是 1970-01-01 00:00:00 UTC+0 之后开始的秒数。

那是个历史时刻,时间点是确定的,和时区无关。楼主你再想想。
----

存 timestamp 然后找库按照 timezone 格式化出来就行。
@dynastysea 其实那些特性都还挺重要(还嫌不够)。
CLion + CMake + C++17 + https://conan.io/

相信我,爽到飞起。
2021-07-14 16:16:34 +08:00
回复了 JQiue 创建的主题 C sizeof 计算问题求解
首先,指针和数组不等效。。。楼主你想当然地信仰了一个错误观点。



sizeof(int*) == 4
sizeof(int[5]) == 20
2021-07-14 11:36:40 +08:00
回复了 zhangchongjie 创建的主题 C++ c++ 模板类 array 的一些问题
你想 new 一个 array,没问题,随便你。
2021-07-14 11:36:25 +08:00
回复了 zhangchongjie 创建的主题 C++ c++ 模板类 array 的一些问题
@zhangchongjie 你好,C++ 几乎任何对象都是可以 new 的。只是 array 设计上就是给不想 new 的人用的。
2021-07-13 16:56:13 +08:00
回复了 zhangchongjie 创建的主题 C++ c++ 模板类 array 的一些问题
@zhangchongjie 呃,你估计是理解错了。

模板类不需要 new ×
某些模板类设计上不需要 new √ (比如 array<...>)

这么说吧,array<...> 是特殊设计,new (堆对象)和栈对象才是 C++ 的根本原理。
2021-07-13 14:05:24 +08:00
回复了 zhangchongjie 创建的主题 C++ c++ 模板类 array 的一些问题
楼主你先别整 std::array<...>, 把 int*, int**, const int*, const int * const 搞清楚在说。
1 ... 61  62  63  64  65  66  67  68  69  70 ... 201  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1764 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 29ms · UTC 16:38 · PVG 00:38 · LAX 08:38 · JFK 11:38
Developed with CodeLauncher
♥ Do have faith in what you're doing.