V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  ipwx  ›  全部回复第 65 页 / 共 200 页
回复总数  4000
1 ... 61  62  63  64  65  66  67  68  69  70 ... 200  
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 搞清楚在说。
2021-07-12 11:13:53 +08:00
回复了 ligiggy 创建的主题 程序员 半路出家 C++, 求知道参数“读/写”的标准
1. 你的方法(集合 + index )会造成及其难以维护的代码,强烈反对。
2. getter/setter 是可选的。有时候简单的对象 struct + 裸属性就行了。毕竟如果你一个对象整体 const 了,它的属性就是不可变的。
3. 参考第二条,有时候你可以 rely on const,比如 std::vector<const T>。
4. 实在需要的时候,找一些工具帮你产生这些代码会比较好。
2021-07-12 10:27:45 +08:00
回复了 mingl0280 创建的主题 问与答 这个 std::string 为啥没法赋值
你省略掉的栈帧可能是问题的关键。
2021-07-10 18:26:13 +08:00
回复了 MakeItGreat 创建的主题 问与答 请问个人保存图片音频视频推荐用什么格式?
@XiLingHost 还是要看情况。一般的 png 是 8 位,但是你照片是 10 位或者 16 位色深的,转了不是很吃亏嘛
1 ... 61  62  63  64  65  66  67  68  69  70 ... 200  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1081 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 34ms · UTC 19:10 · PVG 03:10 · LAX 11:10 · JFK 14:10
Developed with CodeLauncher
♥ Do have faith in what you're doing.