一个C ++强制转换操作符,只使用有关正在强制转换的对象的静态类型的信息,从一种类型转换为另一种类型
这可以编译(尽管是 UB (对吧?)因为 fvp == nullptr) 整数 f; 无效* fvp{}; decltype(f)* fp = static_cast(fvp); 但这不能 无效 f() {} 无效* fvp{}; decltyp...
考虑以下代码(以及 VirtualAlloc() 返回 void* 的事实): 字节* pbNext = reinterpret_cast( VirtualAlloc(NULL, cbAlloc, MEM_COMMIT, PAGE_READWRITE)); 为什么是
我在尝试将一段代码放入模板函数中时遇到了问题。该代码基本上执行钳位。下面是代码的可重现版本。 #包括 ...
我们可以从 Base* 静态转换为 Derived*,但在我的例子中,当转换应该发生时,关系是不可见的。有没有什么技巧(当然除了reinterpret_cast)可以使它......
假设我们有这样的代码: 结构奶奶{ 整数g; }; struct Mom : 虚拟奶奶 { 整数米; }; 结构儿子:妈妈{ 整数; }; int main() { 整数x; std::cin >> x; 妈妈* 妈妈 = (x ? 新 S...
当两个类具有相同的布局时,从基类到派生类的 static_cast 定义良好吗?
我想为 C API 创建 C++ 绑定。以下是未定义的行为吗? typedef 结构 ABC_Foo { int x_; } ABC_Foo; 命名空间 abc { Foo 类:公共 ABC_Foo { 民众: 整数...
我有以下代码片段 班级基础 { 民众: 虚空 MyMethod() { std::cout << "Base MyMethod" << "\n"; } }; class der : public base { public: v...
reinterpret_cast 可以用来将指针强制转换为未实现的类指针吗?
我有两个类,一个有实现,另一个没有。然后在 main() 函数中,我定义了一个带有实现的类实例,然后reinterpret_cast
为什么我不能使用reinterpret_cast运算符进行这样的转换? 枚举 Foo { bar, baz }; 无效 foo(Foo) { } int main() { // 富(0); // 错误:从 'int' 到 'Foo' 的转换无效 // 富(
在阅读 Item 27 最小化有效 C++ 中的转换时,它说不要尝试使用 static_cast 将派生类中的 *this 转换为基类。因为 static_cast(*this) 将创建一个
在C++中,static_cast<float>(some_double_variable)的标准行为是什么?
除了精度损失之外,当双精度型转换为浮点型时还必须发生某种特殊的转换行为(例如夹紧等)。我试图找到 C++ 标准
在 C++ 中使用 static_cast 将指针强制转换为数组引用是否合法?
SO是一场狗屎秀。感谢您的搭车。
我试图使用奇怪的重复模板模式来实现静态多态性,当我注意到 static_cast<> 时,它通常在编译时检查类型是否实际上是
一个需要另一个函数作为参数的函数如何可以在c++的类中使用?
我见过这个问题的不同版本,但它并没有真正解决我的问题。情况是这样的,我想使用一个库,但其中一个功能非常复杂,需要......
带有 MinGW 的 C++:在转换结果类型上忽略类型限定符:但是忽略哪个限定符?
我有抽象类A和公开继承自A的派生类B。 我将指向 const A 的 const 指针传递给函数。在这个函数中,我将其 static_cast 为指向 const B 的 const 指针,并且...
当我使用 C++ 模板时,我发现有时它会给出不直接的结果。 #包括 #包括 模板 void func(const int& a1, f0&...
在模板函数中,如果输入的类型是枚举类,如何使用 std::underlying_type ?
我有一段代码,它返回给定数字的某些位的值(我也使用 static_cast 将枚举类计算为数字)。 模板 bool get_bits(键入输入,u...
什么时候可以安全地使用 static_cast 在 C++ 中进行向下转型?
我需要知道在什么条件下可以使用 static_cast 以便将父类指针转换为子类指针而不会导致未定义的行为。 通常dynamic_cast是
尝试在C++中使用static_cast实现begin/end
我正在尝试实现一个对象来轻松迭代数组,而无需单独对每个元素进行 static_cast (我必须执行数百次)。当我使用经典的 for 循环时它有效,但是当我...
static_cast<> 和 C 风格转换有什么区别? [重复]
有什么理由比 C 风格的转换更喜欢 static_cast<> 吗?它们相等吗?速度有什么区别吗?