std::is_void状态描述:
如果T为void类型,const void,volatile void或const volatile void ,则提供等于true的成员常量值.
那可能是什么const void,或者是volatile void什么?
这个答案表明const void返回类型无效(但是在VC++ 2015上编译)
const void foo() { }
Run Code Online (Sandbox Code Playgroud)
如果按标准,const void无效(VC错误) - 那么是什么const void?
Ben*_*ley 87
const void是一种可以形成指针的类型.它类似于普通的void指针,但转换的工作方式不同.例如,a const int*不能隐式转换为a void*,但可以隐式转换为a const void*.同样,如果你有一个const void*你不能static_cast它int*,但你可以static_cast它const int*.
const int i = 10;
void* vp = &i; // error
const void* cvp = &i; // ok
auto ip = static_cast<int*>(cvp); // error
auto cip = static_cast<const int*>(cvp); // ok
Run Code Online (Sandbox Code Playgroud)
Dev*_*lar 18
类型可以是模板的结果; 模板可能会声明const T,并使用Tas 进行实例化void.
链接的答案被误导,或者说更有限,因为它考虑了非模板类型的特殊情况,即使这样const void也可能毫无意义,但它是有效的代码.
| 归档时间: |
|
| 查看次数: |
15735 次 |
| 最近记录: |