2024 最新工伤认定标准与案例分析

前两天在小红书上看到一个贴子,大概情况是这样的:

一个中年男人,有两个小孩子,在家里是顶梁柱,在公司是好员工。由于女儿肺炎发烧,他在 5.6 号早上发消息请了 3 天假。结果 7 号上午突发糖尿病酮中毒和心肌梗塞,没抢救过来。公司打算走工伤赔偿,但是被告知这个情况不属于工伤。

哎,看到这个消息有点心酸,一个生命就这样逝去,家人的生活也会因此发生很大的变化。从感情上来说,希望能认定工伤,让家人能够得到一些补偿。但是,作为一个执业律师,我也清楚知道,这种情况不属于工伤。

怎么才能认定是工伤?

法律对于认定工伤有明确的规定,接下来我就来给大家科普下怎么才算是工伤。

阅读全文

结合实例深入理解 C++ 对象的内存布局

在前面 Bazel 依赖缺失导致的 C++ 进程 coredump 问题分析 这篇文章,因为二进制使用了不同版本的 proto 对象,对象的内存布局不一致导致读、写成员的内存地址错乱,进而导致进程 crash 掉。但是当时并没有展开细聊下面的问题:

  1. 对象在内存中是怎么布局的?
  2. 成员方法是如何拿到成员变量的地址?

这些其实涉及 C++ 的对象模型,《深度探索 C++对象模型:Inside the C++ Object Model》这本书全面聊了这个问题,非常值得一读。不过这本书读起来并不容易,有的内容读过后如果没有加以实践,也很难完全理解。本篇文章试着从实际的例子出发,帮助大家对 C++ 类成员变量和函数在内存布局有个直观的理解,后面再读这本书也会容易理解些。

阅读全文

C++ 函数可变参实现方法的演进

可变参数函数是接受可变数量参数的函数,在不少场景下,可变参数函数是非常有用的。比如想打印日志时,可以接受任意数量的参数,然后将这些参数拼接输出到控制台,如下:

1
2
3
4
{
// ...;
LogInfo(user, cost, action, result);
}

在C++中,可变参数函数的实现方法也是不断演进的,从最初C风格的可变参数列表,到 C++11 的变参模板,再到 C++17 引入的折叠表达式,见证了 C++ 语言的逐步发展和完善。接下来本文会介绍这三种方式的实现细节以及优缺点。

阅读全文