static-cast 相关问题

一个C ++强制转换操作符,只使用有关正在强制转换的对象的静态类型的信息,从一种类型转换为另一种类型

如何获取变量向量中元素的索引?

从向量 > vec中,我有一个T1&elem,已知在vec中。我想找到索引i,以使get (vec [i])是elem。但是我不确定这是否合法:...

回答 1 投票 0

为什么从基数到派生对象的static_cast转换在基数内但不在基数外

为什么从基类到派生类的static_case转换可在基类内部工作,而在基类类外部不工作Base {public:template int getValue()const {...

回答 2 投票 0

将int静态转换为枚举而不是直接对其进行初始化有什么好处吗?

这样做是否更安全/“更好”:枚举ENUM {//也可以是枚举类...};自动e = static_cast (5);比自动e = ENUM(5); //更紧凑,可读性更高,键入速度更快

回答 1 投票 1

enable_if在转换构造函数上(静态转换,is_base_of)

我正在研究共享指针的实现。 (如果需要的话,使用C ++ 17)唯一的问题是转换构造函数。我希望能够将smart_ptr静态转换为...

回答 1 投票 0

从'size_t'到'const double'的转换,可能会丢失数据

给出一个变量size_t idx,这样的赋值就像double value = idx;在64位下编译时会产生以下警告:'initializing':从'size_t'转换为'double',可能丢失...

回答 3 投票 0

为什么在gcc的is_nothrow_constructible实现中需要static_cast?

来自type_traits的GCC实现,为什么在这里需要static_cast?模板 结构__is_nt_constructible_impl:公共积分常量

回答 1 投票 11

将类型转换为派生类指针后,从基类指针调用派生类函数

我对C ++(&OOP)相当陌生。我正在努力理解以下代码:#include class Base {public:Base(){std :: cout <

回答 3 投票 0

为什么不允许这种跨播?

考虑这个简单的例子:struct Base1 {}; struct Base2 {};派生的结构:public Base1,public Base2 {}; int main(){衍生为foo; Base1 * foo1 =&foo; Base2 * foo2 = ...

回答 1 投票 0

为什么不允许跨播?

考虑这个简单的例子:struct Base1 {}; struct Base2 {};派生的结构:public Base1,public Base2 {}; int main(){衍生为foo; Base1 * foo1 =&foo; Base2 * foo2 = ...

回答 1 投票 0


为什么允许将派生类的方法静态广播到基类的方法?

示例结构B1 {int x;无效f(){x = 1;}};结构D:B1 {int x;无效f(){B1 :: x = 2;}};使用Dmp = void(D :: *)();使用B1mp = void(B1 :: *)(); int main(){Dmp dmp =&D :: f; D d; (d。* ...

回答 2 投票 1

std :: weak_ptr 的存储,并使用static_pointer_cast

如果将std :: weak_ptr与static_pointer_cast存储在一起,引用计数仍将起作用吗?这是一个非常简单的示例(请注意,SmallBox和BigBox类几乎完全相同):#...

回答 1 投票 0

C ++无法通过虚拟基数A从基数A转换为派生类型B

我有三个班级:A类{}; B类:虚拟公共A {}; C类:虚拟公共A {}; D类:公共B,公共C {};尝试从A *到B *进行静态转换时,出现以下错误:...

回答 7 投票 51

使用static_cast更改派生结构成员

对于我的新项目,我想使用以前的代码作为框架,通过避免重写代码来加快原型开发。在下面的代码中,派生结构属于新项目,需要...

回答 2 投票 0

虚函数如何影响static_cast?

如果我有以下代码:#include class Base {public:void Call(){std :: cout <

回答 1 投票 0

将一阶派生类铸造为二阶派生类-为什么起作用?

我只是从基类创建了两个派生类。然后创建一个派生类的对象并转换为基类。然后从基类转换为第二个派生类,我是...

回答 1 投票 0

C ++将一个派生类转换为另一类。如何工作?

我只是从基类创建了两个派生类。然后创建一个派生类的对象并转换为基类。然后从基类转换为第二个派生类,我是...

回答 1 投票 0

为什么`decltype(static_cast (…))`并不总是`T`?

对于以下代码,第一个断言通过,但是第二个断言失败模板 constexpr void assert_static_cast_identity(){使用T_cast = decltype(static_cast (std :: ...

回答 1 投票 2

为什么我除以两个整数时static_cast不起作用?

此问题与C ++代码有关。我有两个整数a和b,我想将一个除以另一个并将答案存储为双精度。但是当我输入以下代码时:int a = 3,b = 7; double d = ...

回答 1 投票 0

使用static_cast时指向const指针的原因

我试图解决一本书中的一个练习,但在static_cast上失败了。我使用了cstdlib中的qsort方法。我必须将函数的参数转换为C-String(const char *)。但是我...

回答 2 投票 2

© www.soinside.com 2019 - 2024. All rights reserved.