草庐IT

Auto-generate

全部标签

c++ - 在 C++ 中使用 auto 的最简单示例是什么?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我试图理解auto在C++中是如何使用的。对我来说,理解某事的最好方法是看一个例子。然而,我看到的例子并不是那么简单。例如这里是“MeaningofC++0xautokeyword,byexample?”。要理解这个例子,我需要知道什么是"template"、“指针”、“malloc”等等。任何人都可以举一个使用auto的简单示例,以便人们可以轻松理解它的

c++ - 使用 '&'进行迭代时 'auto'符号有什么作用

最近我在C++中使用auto时遇到了非常非常奇怪的问题,只是......看看下面的代码片段:我的主要功能:#include#include#includeintmain(){inta=10,b=20,c=30;listwhat;what.push_back(a);what.push_back(b);what.push_back(c);read(what);return0;}这里的函数是:voidread(constlist&con){for(autoit:con){printf("%p\n",&it);cout这是输出:0x7fffefff66a4100x7fffefff66a4200

c++ - 包含错误 MIDL2003 : redefinition when compiling ATL generated idl with windows. h 和 sql.h

作为要求的一部分,我必须在ATL生成的idl中包含sql.h和windows.h。不幸的是,当包含sql.h时,它一直在提示1>c:\programfiles(x86)\windowskits\8.0\include\um\sqltypes.h(125):errorMIDL2003:redefinition:SQLSCHAR1>c:\programfiles(x86)\windowskits\8.0\include\um\sqltypes.h(131):errorMIDL2003:redefinition:SQLUINTEGER当包含windows.h时,它会提示1>C:\Progra

c++ - 无法在 VS 14 CTP : conditional expression of type 'void' is illegal 中使用 auto 声明 lambda

使用VisualStudio2014CTP、C++(v140)编译器:autogp=[&](BYTE*buff){autogp1=[](char*bff,char**p1){*p1=strstr((char*)bff,"(");return(*p1);};};错误:conditionalexpressionoftype'void'isillegal(也许auto真的输入错误?)如果我将内部lambda声明为std::functiongp1然后就可以了是我做错了什么还是编译器错误? 最佳答案 我没有运行2014,但您可能需要指定内部l

c++ - 函数返回 auto 自动参数 munmap_chunk() : invalid pointer

我正在测试newfeature对于GCC4.9(自动输入参数)并出现一些奇怪的错误。#include#includeautofoo(autov){for(auto&&i:v)std::cout{1,2,3});}这给我以下错误:***glibcdetected***./a.out:munmap_chunk():invalidpointer:0x00007f87f58c6dc0***=======Backtrace:=========/lib/x86_64-linux-gnu/libc.so.6(+0x7e846)[0x7f87f4e4c846]./a.out[0x400803]/lib

c++ - std::max 与 lambda 和 auto

C++11难道不能做到这一点吗?使用当前的clang编译器(OSX10.8上的Xcode5)无法编译:std::max_element(group->GetComponents().begin(),group->GetComponents().end(),[](autoa,autob){returna.length>b.length;});错误信息是:Stuff.cp:68:40:函数原型(prototype)中不允许使用“auto” 最佳答案 在C++1y中你有通用的lambda,所以语法将在clang3.5中编译。.lambda

c++ - 以下哪一项是 "auto"推导指针类型的更正确方法?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。Improvethisquestion(非常基本的问题:)我发现以下两种方式都生成int*类型。我可以知道哪个更合适吗?inti=42;autoa=&i;auto*b=&i;(我试图将指针示例与引用示例相关联:autoc=i;和auto&d=i;。但似乎类比在这里不起作用.)编辑:我还发现另一个(密切相关的)例子很奇怪:autoi=42,p=&i;//failsatcompilationautoi=42,*p=&i;//pas

c++ - generate_canonical 输出是否跨平台一致?

C++标准在[rand.util.canonical]下非常详细地指定了模板函数std::generate_canonical的工作方式(尽管它只提供伪代码,而不是C++代码)。规范作者的意图是在不同的平台上,RealType的数学运算相同,并且对于确定性的URNG,在两个平台上给出相同的输出平台,std::generate_canonical也提供相同的输出?这与类似的问题有关,例如Is1.0avalidoutputfromstd::generate_canonical?--散文指出1.0被排除在外,但他们在伪代码中给出的算法有时将其作为输出包括在RealType和URNG的某些组合

c++14 static constexpr auto 与 odr 用法

我有以下C++14代码:templatestructTest{staticconstexprautosomething{T::foo()};};这很好,只要T::foo()也是一个constexpr。现在我知道something是ODR使用的,所以我需要提供命名空间声明。我应该使用什么语法?templateconstexprautoTest::something;不起作用。谢谢! 最佳答案 通过using定义的类型名怎么样?templatestructTest{usingsomeType=decltype(T::foo());sta

c++ - 粒子系统 : particle generation

我有一个系统可以从源中生成粒子并更新它们的位置。目前,我在OpenGL中编写了一个程序,它调用我的GenerateParticles(...)和UpdateParticles(...)并显示我的输出。我希望我的系统具备的一项功能是能够每秒生成n个粒子。在我的GenerateParticles(...)和UpdateParticles(...)函数中,我接受了2个重要参数:current_time和delta_time。在UpdateParticles(...)中,我根据以下公式更新粒子的位置:new_pos=curr_pos+delta_time*particle_vector。我如何