auto相关内容

使用返回在另一个翻译单元中定义的占位符类型的函数

我在理解具体来说,对标准的一项更改是 如果函数的声明的返回类型包含占位符类型,则从函数主体中的return语句(如果有)中推断出函数的返回类型. 很容易看出,当函数体与声明位于同一文件中时,它是如何工作的;但是考虑头文件使用auto占位符声明方法但不定义的情况. 包含该头文件但不的翻译单元如何成功定义该方法的文件? 例如,给定文件foo.hpp: class foo { ..
发布时间:2020-09-14 04:26:21 C/C++开发

具有参考的自动关键字行为

假设我有一个简单的c ++类,其中包含一个私有成员和一个getter: class MyClass { private: double m_testValue = 1; public: double& getTestValue(){return m_testValue;} } 现在让我们说我要调用getter来获取我的引用并编辑该值(并 ..
发布时间:2020-09-14 04:25:13 C/C++开发

是否有可能具有“自动"功能?成员变量?

例如,我想拥有类型为auto的变量,因为我不确定它将是哪种类型. 当我尝试在类/结构声明中声明它时,出现此错误: 无法推断自动类型.需要初始化器 有办法解决吗? struct Timer { auto start; }; 解决方案 可以,但是必须声明static和const: struct Timer { static const auto ..
发布时间:2020-09-14 04:24:04 C/C++开发

vector< bool> :: operator []行为不当?

可能重复: 为什么vector :: reference不返回对bool的引用? 我曾经认为,使用std::vector::operator[]可以获取所访问项目的深副本,但似乎并非总是如此.至少,对于vector,以下测试代码将给出不同的结果: #include #include using namespace st ..
发布时间:2020-09-14 04:23:02 C/C++开发

为什么decltype(auto)在这里返回引用?

我认为(认为)我了解auto.关于decltype也是一样.但是,在C ++ 14中,可以将诸如decltype(auto)之类的双合成对象作为函数的返回类型.请考虑以下内容: decltype(auto) foo() { int m = 1; return m; } 返回类型为int,一切都有道理. 但是, decltype(auto) foo() { ..
发布时间:2020-09-14 04:22:54 C/C++开发

使用'auto'和std :: minmax观察奇怪的行为

我在SUSE Enterprise Linux 11上使用GCC 4.7.2和Boost 1.58.0.我有以下代码片段,该代码片段基本上通过多边形列表来计算其长度/宽度.在std :: minmax函数中使用'auto'关键字时,我看到奇怪的输出.为了进行比较,我还声明了第二个变量,在其中明确声明了类型(即dim vs dim1). namespace gtl = boost::polyg ..
发布时间:2020-09-14 04:22:53 C/C++开发

为什么需要显式编写'auto'关键字?

我正在从C ++ 98迈向C ++ 11,并且已经熟悉auto关键字.我想知道为什么如果编译器能够自动推断类型,我们为什么需要显式声明auto.我知道C ++是一种强类型的语言,这是一条规则,但是如果不显式声明变量auto,是否不可能实现相同的结果? 解决方案 删除显式auto会破坏语言: 例如 int main() { int n; { aut ..
发布时间:2020-09-14 04:21:51 C/C++开发

类成员上下文中的`auto`返回类型

如何将自动推论应用于班级成员?例如,以下代码 struct A { auto foo(); // foo is defined in another file }; int main() { A a; a.foo(); } 其中foo具有返回类型auto的结果导致以下错误: error: function 'foo' with deduced return typ ..
发布时间:2020-09-14 04:21:47 C/C++开发

如何使用自动声明数组

我一直在玩auto,我注意到在大多数情况下,您可以用auto替换变量定义,然后分配类型. 在下面的代码中,w和x是等效的(默认初始化为int,但不允许进入潜在的副本中).有没有办法声明z使其具有与y相同的类型? int w{}; auto x = int{}; int y[5]; auto z = int[5]; 解决方案 TL; DR template ..
发布时间:2020-09-14 04:21:36 C/C++开发

C ++自动与自动&

如果我有一个功能: Foo& Bar() { return /// do something to create a non-temp Foo here and return a reference to it } 这是为什么: auto x = Bar(); /// probably calls copy ctor - haven't checked 与此不同吗? ..
发布时间:2020-09-14 04:21:35 C/C++开发

C ++自动和与汽车

创建局部变量时,使用(const) auto&或auto是否正确? 例如: SomeClass object; const auto result = object.SomeMethod(); 或const auto& result = object.SomeMethod(); 其中SomeMethod()返回非原始值-可能是另一个用户定义的类型. 我的理解是const au ..
发布时间:2020-09-14 04:21:31 C/C++开发

从函数正确传播`decltype(auto)`变量

(这是") 请考虑以下情形-我要将一个函数f传递给另一个函数invoke_log_return,该函数将: 调用f; 打印一些内容到 stdout ; 返回f的结果,避免不必要的复制/移动并允许复制省略. 请注意,如果抛出f,则不应将任何内容打印到 stdout .这是我到目前为止的内容: template decltype(auto) ..
发布时间:2020-08-10 19:02:08 C/C++开发