显然,可以声明一个函数返回const void:
const void foo()
{
}
Run Code Online (Sandbox Code Playgroud)
g ++似乎认为const很重要,因为下面的代码不能编译:
#include <type_traits>
static_assert(std::is_same<void(), const void()>::value, "const matters");
Run Code Online (Sandbox Code Playgroud)
那const void有什么实际意义吗?
我有一个类定义了两个重载方法
public void handle(Void e)
protected void handle()
Run Code Online (Sandbox Code Playgroud)
显然他们是不同的,尤其handle(Void e)是public.
这两者有什么区别?
如何调用第一种方法?我正在使用handle(null)- 这是正确的吗?
在API中
"Void类是一个不可实例化的占位符类,用于保存对表示Java关键字void的Class对象的引用."
java.lang.Void使用?如果该类是"不可实现的",它有什么用?java.lang.Void和之间有什么区别void?我见过一些人void在他们的代码中使用运算符.我也在href属性中看到了这一点:javascript:void(0)这似乎没有任何好处javascript:;
那么,使用void运营商的理由是什么?
void run() {
...
if (done) return cancel();
...
}
Run Code Online (Sandbox Code Playgroud)
哪里cancel()回来void.这不会编译......我几乎可以理解为什么.但是如果我想从虚空中归还一个空洞,为什么不呢?相反,我最终写了这样的东西:
if (done) {
cancel();
return;
}
Run Code Online (Sandbox Code Playgroud)
我不是在寻找代码风格的建议,我想知道为什么Java明确禁止这种类型的void返回.任何信息表示赞赏,谢谢.
以下是什么意思:
int main(void) {...}
Run Code Online (Sandbox Code Playgroud)
VS
int main() {...}
Run Code Online (Sandbox Code Playgroud)
?
我认为这int main() {...}意味着main不接收任何参数(来自命令行),但是:
int main(int argc, char *argv[])
Run Code Online (Sandbox Code Playgroud)
确实.
但这int main(void) {...} 意味着什么?什么是无效主张?
我看过这里,但这是一个不同的问题.
是voidC编程语言中的数据类型吗?如果是这样,它可以存储什么类型的值?如果我们有int,float,char,等,来存储值,为什么void需要?
我不确定将Unit指定为我的scala方法的返回类型或完全省略返回类型之间的区别.有什么不同?
任何人都可以建议吗?
从[5.3.3/1]开始,我发现:
sizeof运算符不应用于具有函数或不完整类型的表达式
从[3.9/5]我发现:
不完全定义的对象类型和cv void是不完整的类型
无论如何,因为sizeof不评估它的操作数,我会说这sizeof(void())是一个合法的表达式(实际上GCC编译它,结果是1).
另一方面,从这里开始,void在讨论sizeof时没有提及,既没有提到具有大小1的类型,也没有提到具有实现定义大小的类型的列表.
因此问题是:是sizeof(void())一种法律表达吗?
是否保证大小等于1?
或者这是一个导致UB的法律表达,这就是全部?