V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  cnbatch  ›  全部回复第 65 页 / 共 66 页
回复总数  1302
1 ... 57  58  59  60  61  62  63  64  65  66  
2022-05-03 14:01:53 +08:00
回复了 lcj2class 创建的主题 C 现代化 C 使用体验
@Bbird 现在的 container_of 去掉了 typeof ,但我想不到风格还是跟原来的差不多,依旧是先来一个变量赋值,下一行再做减法,并且仍然需要大括号。
虽然终于不再依赖 typeof ,但相比之下,我仍然更喜欢 BSD 的那种。同样的效果,却更加简洁、易懂。
按道理,GPL 代码照抄 BSD 是完全可以的。
2022-05-03 13:54:10 +08:00
回复了 lcj2class 创建的主题 C 现代化 C 使用体验
@Bbird 重新下载了新的内核代码树看了下,确实是这样。很久以前看的时候他还是 typeof ,搞得我以为现在还是。原来现在甚至还有专门的 container_of.h ,方便了不少
2022-05-03 04:53:43 +08:00
回复了 lcj2class 创建的主题 C 现代化 C 使用体验
@xiri 其实 container_of 不使用 typeof 也可以实现,FreeBSD 的源码就有:
https://github.com/freebsd/freebsd-src/blob/main/sys/dev/cxgb/cxgb_adapter.h

代码是:
#define container_of(p, stype, field) ((stype *)(((uint8_t *)(p)) - offsetof(stype, field)))



有意思的是,Linux 源码当中也有不用 typeof 来 define 的,而且似乎是唯一一处:
https://github.com/torvalds/linux/blob/master/tools/lib/bpf/bpf_helpers.h

#define container_of(ptr, type, member) \
({ \
void *__mptr = (void *)(ptr); \
((type *)(__mptr - offsetof(type, member))); \
})
#endif

稍微追溯了下提交历史,这是两年前新增的:
https://github.com/torvalds/linux/blob/5fbc220862fc7a53a0455ccd2d96c82141e222d4/tools/lib/bpf/bpf_helpers.h

仔细一看,原来是 BPF ,也是跟 BSD 有关的东西,或许这种写法属于“BSD-style”吧。但是跟 BSD 版本相比,bpf_helpers.h 的写法仍然更加接近于 Linux 的 typeof 版本。
2022-04-21 17:13:05 +08:00
回复了 irisdev 创建的主题 程序员 如何完全卸载 ie
如果要测试各种旧版微软浏览器,建议用虚拟机。

微软自己就提供了各种浏览器对应版本操作系统的虚拟机镜像:
https://developer.microsoft.com/zh-cn/microsoft-edge/tools/vms/

从 IE8 到 IE11 以及旧版 Edge 都有
2022-04-19 15:51:45 +08:00
回复了 monetto 创建的主题 程序员 有入手 GPD Pocket 的吗
如果是指初代的话,不建议买,除非用来当作远程桌面客户端。

初代 GPD Pocket 出来时买过,到现在还能用,两年前返厂换过电池和风扇(电池鼓包、风扇转得感觉要松脱)。

性能奇差,用来写代码会让人很不爽,反应太慢了。键盘键位几乎没法用,间距就不用说了,网上各种测试、评价文章也提到过。个人觉得能够方便使用的键位也就只有方向键、Win 键、菜单键,还有指点杆。

只要开着机,风扇几乎是长期转着的,除非是在大冬天时候用(空气温度 10 度以下那种)那么风扇才会偶然转两下。
夏天时风扇几乎是满载的,风口很热,机身就更不用说了,摸上去发烫。长时间用的话,就算没烧坏 CPU ,也会导致电池鼓包、风扇坏掉。

如果只用这台机器开着 RDP 或 VNC 连接其他电脑,那么它的负载就不会很高。

只不过那么小的屏幕,就算开着高 DPI 都用处不大。低 DPI 需要外接显示器(既然有外接显示器那可以顺便把鼠标键盘都接上),否则等于折磨眼睛;高 DPI 是清晰了,只是桌面能够看的东西很少,用来写代码不够用,DPI 200%的情况下只能装得下 Windows 的 cmd 窗口。

最重要的是,不外接显示器长时间用这台机器的话,对颈椎很不好。
2022-04-14 18:38:31 +08:00
回复了 fgwmlhdkkkw 创建的主题 C++ 自己写了一个 JSON 解析器,遇到一个问题
@fgwmlhdkkkw 忘了补一个 T key 的万能引用

const Value * peek(const Value * src, T key, Args && ... args)

可以适当改成

const Value * peek(const Value * src, T && key, Args && ... args)
{
auto ptr = peek(src, std::forward(key));
if (ptr == nullptr) return nullptr;
return peek(ptr, std::forward<Args>(args)...);
}

至于应不应该改,那就视乎你的具体需要而定
2022-04-14 18:03:19 +08:00
回复了 fgwmlhdkkkw 创建的主题 C++ 自己写了一个 JSON 解析器,遇到一个问题
@whitehack [[nodiscard]]的意思楼上已经说了,那我就稍作补充。

这是 C++17 新属性
en.cppreference.com/w/cpp/language/attributes/nodiscard

很快就连 C 语言也能用上这个属性( C23 )
en.cppreference.com/w/c/language/attributes/nodiscard
2022-04-14 17:31:26 +08:00
回复了 fgwmlhdkkkw 创建的主题 C++ 自己写了一个 JSON 解析器,遇到一个问题
不想复制的话,可以使用万能引用、完美转发

template <typename T, typename ... Args>
[[nodiscard]]
const Value * peek(const Value * src, T key, Args && ... args)
{
// auto 和 if 的部分
// ......
return peek(ptr, std::forward<Args>(args)...);
}
除了楼上的办法,其实还可以试试这些方式:
第一种:既然“Electron 旧版的逻辑和这个一致,却没有报毒的问题”,那就试试用 Electron 专门制作个下载更新工具,需要自动更新时就让软件运行这个小工具来下载更新包。
第二种:采用 Google Chrome 的更新方式,也就是在系统中额外增加一个服务 (Windows Service),让这个服务帮忙覆盖所需文件。
2022-04-11 05:13:58 +08:00
回复了 monster33 创建的主题 程序员 绷不住了,折腾了一晚上的 xrdp,竟然没有折腾成功
对于 ArchLinux 的 WiKi ,建议对照阅读英文版。中文版似乎有一段时间没人更新了,英文版多了一个部分:Black screen with a desktop environment

它里面针对 KDE 用户有这么一段话:For KDE Plasma, you can use the command /usr/lib/plasma-dbus-run-session-if-needed startplasma-x11
既然驱动都被搞烂要重装了,要不索性试试更高级的 Windows 版本——Windows Server 2022 或 2019 。毕竟 10G 网卡在服务器上更为常见。
无论是 10G 的机器,还是千兆的机器,包括路由器,能开的都开,一般不会有什么问题,目前绝大多数网卡都支持巨型帧,就算没开启支持,它也能收得进去。
WiFi 明确不支持巨型帧,但也不怕,无线路由器会帮忙拆分、整合的。
2022-04-05 17:07:09 +08:00
回复了 monster33 创建的主题 程序员 有多少人平时主力电脑用的 Linux ?
@zjp 第一和第三个,不是不能,而是麻烦。换字体最麻烦,没有官方工具可以调(这倒是可以当作“不能”)。自定义快捷键其实可以用微软自家 PowerToys 自行指定,虽然也得自己安装。

至于子像素排列,还真是能自选,系统自带的“ClearType 文本调谐器”就是干这样的事情的。只不过这个调整工具是向导式的,不那么直观。这个工具的位置是:控制面板\外观和个性化\字体,点击左侧“调整 ClearType 文本”

telegra.ph/Windows-10-ClearType-Adjust-04-05
在这里截了整个过程的图片
@fastcache Windows 的这边是 AQC ,另一端是板载 Intel + XigmaNAS 12 ,中间隔了个 QNAP 交换机
这里一路下来分别有 3 家硬件厂,都能达到 10G ,所以我觉得 OP 遇到的问题应该是驱动有 bug 了
忘了说,我在网卡属性里面改了这些设置:
开启 Jumbo Packet ,设置成最大( 9014 )
Receive Buffers 设置到最大( 4096 )
Transmit Buffers 设置成最大( 8184 )
@fastcache 我买的网卡(散热板印有 MSI logo 的那款)据称里面用的也是 AQC-107 芯片,但用起来就能跑满。想不到同芯片不同品牌的差别会这么巨大。
@oovveeaarr telegra.ph/Windows---Marvell-AQtion---iperf3---v2ex-04-04
双向各测了两次,都没问题
(我注册未满 30 天,只好这样发图片了)
我用的是 Marvell AQtion 10G 网卡( RF45 + 6 类线),在 Windows 10 可以跑出 9G+,-P 5 情况下可达 9.9G 。

根据 chiphell 网站讨论贴《万兆光纤内网不达标》的说法,同一张网卡在 Windows 达不到 10G 的原因就一个:CPU 单核弱。而且这个讨论贴的作者后来用-P 10 跑出了 10G 的速度。

顺便给个参考:chiphell 讨论贴的作者电脑 CPU 是双路 E5-2630 ,我电脑的 CPU 是 i9-9900K 。
2022-03-30 20:07:31 +08:00
回复了 wzky 创建的主题 Windows 使用共享向导(推荐)取消勾选,在注册表的位置
域的组策略似乎本身就有这个设置:

To right click Folder Option under User Configuration\Preferences\Control Panel Settings and then click New, Folder Options (Windows Vista), you can uncheck Use Sharing Wizard (Recommended) item.

来自 social.technet.microsoft.com 的 Turn off "sharizing wizard" using group policy

可以试试
2022-03-26 18:19:30 +08:00
回复了 lxr760 创建的主题 宽带症候群 ipv6 有 DDNS 这样的东西吗?
@lxr760 namecheap 明确说了,不支持 IPv6 的 DDNS 。
它家知识库文章“How do I set up a Host for Dynamic DNS”最后一句这么写的:
Currently, IPv6 is not supported by our Dynamic DNS.
(目前,我们的动态 DNS 不支持 IPv6 )
1 ... 57  58  59  60  61  62  63  64  65  66  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2403 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 33ms · UTC 12:16 · PVG 20:16 · LAX 05:16 · JFK 08:16
Developed with CodeLauncher
♥ Do have faith in what you're doing.