V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  ipwx  ›  全部回复第 70 页 / 共 206 页
回复总数  4101
1 ... 66  67  68  69  70  71  72  73  74  75 ... 206  
@ericgui 其实 shared_ptr 很好用,相信我。
2021 年 7 月 15 日
回复了 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 就很好用。

上面这些都挺省我代码量的。一些其他零碎可能我用到的不够多就不记得了。
时间戳就是 1970-01-01 00:00:00 UTC+0 之后开始的秒数。

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

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

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



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

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

这么说吧,array<...> 是特殊设计,new (堆对象)和栈对象才是 C++ 的根本原理。
2021 年 7 月 13 日
回复了 zhangchongjie 创建的主题 C++ c++ 模板类 array 的一些问题
楼主你先别整 std::array<...>, 把 int*, int**, const int*, const int * const 搞清楚在说。
2021 年 7 月 12 日
回复了 ligiggy 创建的主题 程序员 半路出家 C++, 求知道参数“读/写”的标准
1. 你的方法(集合 + index )会造成及其难以维护的代码,强烈反对。
2. getter/setter 是可选的。有时候简单的对象 struct + 裸属性就行了。毕竟如果你一个对象整体 const 了,它的属性就是不可变的。
3. 参考第二条,有时候你可以 rely on const,比如 std::vector<const T>。
4. 实在需要的时候,找一些工具帮你产生这些代码会比较好。
2021 年 7 月 12 日
回复了 mingl0280 创建的主题 问与答 这个 std::string 为啥没法赋值
你省略掉的栈帧可能是问题的关键。
1 ... 66  67  68  69  70  71  72  73  74  75 ... 206  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   3760 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 48ms · UTC 10:37 · PVG 18:37 · LAX 03:37 · JFK 06:37
♥ Do have faith in what you're doing.