草庐IT

non-main

全部标签

c++ - C++ 中 Main 参数的 Const-Qualification

C++标准要求所有符合规范的实现都支持main的以下两个签名:intmain();intmain(int,char*[]);如果是后一种签名,添加(顶级)const是否会破坏任何语言规则?例如:intmain(constintargc,char**constargv);据我了解,顶级const限定不会影响函数的签名哈希,因此就规范而言它应该是合法的。此外,是否有人遇到过拒绝此类修改的实现? 最佳答案 这是一个knownissue在标准中。另见thisusenetdiscussion关于这个话题。

c++ - SIMD/SSE : How to check that all vector elements are non-zero

我需要检查所有vector元素是否非零。到目前为止,我找到了以下解决方案。有一个更好的方法吗?我在Linux/x86_64上使用gcc4.8.2,指令高达SSE4.2。typedefcharChrVect__attribute__((vector_size(16),aligned(16)));inlinebooltestNonzero(ChrVectvect){constChrVectvzero={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};return(0==(__int128_t)(vzero==vect));}更新:上面的代码被编译为以下汇编代码(当编译为非

在 main 中可见的函数中声明的 C++ 结构

为什么这段代码有效?使用c++14//Exampleprogram#include#includeusingnamespacestd;autofun(){structa{intnum=10;a(){couta类型如何在main中可见?如果我将autox=更改为ax=它显然不会编译,但是main如何知道a类型?static声明在那里,因为我试图测试其他东西,但后来我偶然发现了这种行为。在这里运行:https://wandbox.org/permlink/rEZipLVpcZt7zm4j 最佳答案 在您意识到这一点之前,这一切都是令人惊

c# - 为什么c#中的main方法总是放在类中而不是c++中

为什么我们放main()方法总是在class内在C#中,而在C++中,它总是放在class之外. 最佳答案 C++语言的设计者效仿了C,因此main函数是一个普通函数。C#语言设计者在设计语言时做出选择,即所有方法都必须是类的一部分。 关于c#-为什么c#中的main方法总是放在类中而不是c++中,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/9002790/

c++ - 应该避免带有尾随返回类型的 main 吗?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。Improvethisquestion在下面的代码示例中,main函数是使用C++11尾随返回类型表示法编写的:automain()->int{//...return0;}问题:是否有任何理由应该避免带有尾随返回类型的main而应该首选经典符号?

c++ - 没有返回类型的 main 的使用在 C++11 中被淘汰了吗?

StephenPrata在他的书C++PrimerPlus[p31]中说:ManyexistingprogramsusetheclassicCfunctionheaderinstead:main()//originalCstyleUnderclassicC,omittingthereturntypeisthesameassayingthatthefunctionistypeint.However,C++hasphasedoutthatusage.但是C++11草案3.6.1->2说Animplementationshallnotpredefinethemainfunction.This

c++ - 在 main 之前退出程序是否是明确定义的行为?

在调用main之前执行代码绝对是可能的,如thisquestion中的许多示例所示.但是,如果在主前代码中,程序被告知通过std::exit或std::abort退出怎么办?由于main被定义为程序的开始,那么在开始之前退出会有什么后果?在每个部分打印一些东西后,我得到以下结果:格式:部分:输出主要:主要Init(在main之前调用):init退出(在Init中用std::atexit设置):exiting样本运行:在不退出的情况下调用Init:initmainreturns0初始化调用std::exit(0):initreturns0Init调用std::abort:initcras

c++ - main() 函数中的 try\catch block 没有括号

VisualStudio2015;C++语言。我记得我在某处读到有关入口点(即main方法)的内容,可以这样写:#includeusingnamespacestd;intmain()try{return0;//Iamhere...}catch(...){cout即在这种情况下,try\catchblock不在括号中:intmain(){//startbrackettry{return0;}catch(...){return1;}}//endbracket这两种情况都已成功编译并且也可以正常工作,但是......在第一个变体中,当我在tryblock之后逐步按下F10键时,我也进入cat

c++ - 将 NON-POD 类型传递给 Variadic 函数是未定义的行为?

Inthisdocument,作者说OnlyaPOD-typecanbeanargumentfortheellipsis"..."whilestd::stringisnotaPOD-type.我将此理解为将NON-POD类型传递给Variadic函数是未定义的行为。对吗?不过,他是在说C/C++标准吗?我试图在n3242C++规范中找到它。但是找不到。我想知道我的理解是否正确,这是一个标准。 最佳答案 它在C++115.2.2/7中指定:Passingapotentially-evaluatedargumentofclasstype

C++11 "Non-movable"类型

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:WhydoC++11-deletedfunctionsparticipateinoverloadresolution?我对以下C++11代码有两个问题:#includeusingnamespacestd;structA{A(){cout我用gcc和clang得到以下编译错误gcc-4.7.2(g++--std=c++11main.cpp):main.cpp:Infunction‘Af()’:main.cpp:16:9:error:useofdeletedfunction‘A::A(A&&)’main.cpp:8