cost 308 ms
将任意普通 cpyable 非数组“东西”序列化到缓冲区 (reinterpret_cast) 出错 - Serialize arbitrary trivially cpyable non array "stuff" into buffer (reinterpret_cast) goes wrong

标题不言自明:我想将任意大量可简单复制的非数组“东西”序列化到缓冲区中(出于学术原因)。 基本思路是将我要序列化的地址重新解释为unsigned char*,然后用std::copy到那个buffer中,反向操作加载。 这是一个最小的非工作示例。 如果我只写一个 A,它就可以正常工作。 我也可以写任 ...

C++ 编译器说“自动返回类型的推导不一致” - C++ compiler says "inconsistent deduction for auto return type"

C++ 中有一个很好的功能,您可以说 function 的返回类型为“auto”,编译器会计算出来。 但是,如果我在出错时返回一个指针和 nullptr 怎么办? 不知何故,编译器无法推断出正确的类型并给出错误。 在下面的简单示例中,假设std::vector<int>计划在未来完全 ...

如何在 C++ 中正确打字 - How to do type punning correctly in C++

假设我有这段代码: 我想要的只是将bits变量中的位解释为浮点数。 我开始明白这叫做“类型双关”。 上面的代码目前在我的机器上工作,GCC 10 on Linux。 我使用这种方法“重新解释位”已经有一段时间了。 然而,最近我从这篇文章中了解到“严格的别名规则”: 什么是严格的别名规则? 我从那里 ...

为什么可以将 integer 转换为 void 指针,但不能使用 CString? - Why can you cast a integer as a void pointer but can't with CString?

请注意,我引用的是工作代码,我正在尝试实现相同的方法,但使用的是CString 。 以下方法有效,将 integer 转换为空指针: 而如果我对 CString 执行相同的操作,则会出现以下错误: 错误: 是因为从根本上说你不能对CString做同样的事情吗? 我试着在 inte.net 上搜索, ...

使用不触发 UB 的 reinterpret_cast 的示例 - Examples using reinterpret_cast that do not trigger UB

阅读https://en.cppreference.com/w/cpp/language/reinterpret_cast我想知道reinterpret_cast的用例有哪些不是 UB 并且在实践中使用? 上面的描述包含许多情况,其中将指针转换为其他类型然后再转换回来是合法的,这是合法的。 但这似乎 ...

我可以将带有 arg uint 的模板实例转换为带有 arg int 的相同模板实例吗?它符合哪个标准? - can i cast a template instance with arg uint to same template instance with arg int - is it compliant - to which standard?

请检查以下 c++ 代码:(没什么特别的,应该符合 c++ 1991 年第 2 版) 基本条件class CNullable 遵循众所周知的基本可空模式,即在某些框架中针对 c# 实施,但也可以是具有一个参数的任何模板。 顾名思义,TEnum 用于不同的枚举类型。 即enum FooEnum { ...

使用 reinterpret_cast<char *> () 输入数组</char> - Use reinterpret_cast<char *> () with input of an array

我正在学习教程,并且正在使用以下代码将二进制文件读入数组: 我的问题首先是为什么我们可以将整数数组转换为字符? 这里的基本逻辑是什么? 其次,我想知道我们不应该在这里使用参考作为输入吗? 我的理解是outputArrary将只是这个函数的 scope 中的一个副本 ...

从 std::function reinterpret_cast 是否安全<void()> * 到 std::function<std::monostate()> *?</std::monostate()></void()> - Is it safe to reinterpret_cast from std::function<void()> * to std::function<std::monostate()> *?

例子: std::function&lt;void()&gt;和std::function&lt;std::monostate()&gt;是否认为“相似”足以使reinterpret_cast安全? 编辑:有人让我澄清我在问什么。 我不是在问 foo&lt;X&gt; 和 foo&lt;Y&gt ...

是否可以使用 c# 代码将 object 引用重新解释为本机 int ? - Is it possible to reinterpret an object reference as native int using c# code?

免责声明:我知道这是一种不安全的操作和不好的做法,我只是想知道它是否可能。 基本上,我正在尝试将 object 引用转换为nint ( IntPtr )。 它们在memory中占据相同的大小,所以理论上应该是可以的。 我已经使用 DynamicMethod 让它工作: 这是否可能仅使用 C# 代码 ...

避免使用 reinterpret_cast 复制缓冲区? - Avoid copying with reinterpret_cast the buffer?

我遇到了一个代码片段,其中使用memcpy()将缓冲区中的字节复制到结构变量中: 我将其更改为: 我的目标是避免将缓冲数据从p_data复制到局部变量m_hdr中,而只是使MtaHeader*指针指向p_data 。 我所做的是否正确,我是否使代码更快? 结构的元素会得到正确的值吗? 另 ...

C++,为什么强制转换(从字符串到 const unsigned char* 数组)将此字符串的大小从 20 字节调整为 16 字节等效? - C++, reason why casting (from string to const unsigned char* array) is resizing this string from 20 byte to 16 byte-equivalent?

我正在用 Crypto++ 库做一些实验,我不明白为什么在reinterpret_cast之前长度是 20 字节而之后只有 8 个字符而不是 10 个字符。非常感谢您的关注。 PS 很抱歉,如果问题没有按照指南提出,我是新来的。 也许它不是很笼统,但我希望它对其他人有用。#include "cr ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM