initializer-list 相关问题

std :: initializer_list是C ++ 11中的一种特殊类型,用于从相同类型的值列表构造容器和其他类型。可以实现为一对指针或指针和长度,其存储可以是自动,临时或静态只读。

另一个构造函数中的对象构造函数?

我对CPP还是很新鲜,我正在利用我们目前所有的空闲时间尝试新事物。我有2个单独的类,我想在主目录中都为它们创建一个初始化列表。...也许我不是...

回答 2 投票 -1

另一个构造器中的对象构造器??? {请更改标题...}

我对CPP还是很新鲜,我正在利用我们目前所有的空闲时间尝试新事物。我有2个单独的类,我想在主目录中都为它们创建一个初始化列表。...也许我不是...

回答 2 投票 -1

类中的常量成员

我有这个课程:课程模型{私人:link_list列表;浮动参数_B1;浮点参数_B0; public:model(); float getparameter_B1()const; float getparameter_B0()const; ...

回答 1 投票 0

C ++构造函数初始值设定项列表“错误:预期的'('或'{'”

这不会编译:类foo {结构节点{wchar_t val; unordered_map >子代; };节点根public:foo():root.val(L'า'),// ...

回答 1 投票 0

C ++ 11:自动如何处理()初始值设定项?

我知道C ++ 11使用自动初始化向量的方式,实际上是初始化了std :: initializer_list而不是向量。但是,给出以下代码:#include #include&...

回答 2 投票 -1

[std :: initializer_list with std :: thread

myNameSpace :: functionName(this,{“ abc”,“ abc1”}); //工作正常,但std :: thread(myNameSpace :: functionName (this,{“ abc”,“ abc1”}))); //错误:...

回答 1 投票 0


函数std :: make_shared ]的参数过多。 我缺少std::make_shared。它无法解析std::initializer_list的类型,还是我在做其他错误? #include <vector> #include <memory> class A {}; int main() { A a; std::vector<A> veca{A(), A{}, a}; // this works ofc std::vector<A> vecb({A(), A{}, a}); // this too std::make_shared<std::vector<A>>(vecb); // and this, ofc std::make_shared<std::vector<A>>({a}); // what's wrong here? return 0; } 错误: main.cpp:21:41: error: too many arguments to function ‘std::shared_ptr<_Tp1> std::make_shared(_Args&& ...) [with _Tp = std::vector; _Args = {}]’ std::make_shared<std::vector<A>>({a}); ^ In file included from /usr/include/c++/6/memory:82:0, from main.cpp:10: /usr/include/c++/6/bits/shared_ptr.h:632:5: note: declared here make_shared(_Args&&... __args) ^~~~~~~~~~~ 实时示例:https://onlinegdb.com/r1DlHquDL 我缺少std :: make_shared的内容。它不能解析std :: initializer_list的类型,还是我做错了其他事情? #include #include A类{}; ... 考虑以下问题的最小示例: template <typename... Ts> void f(Ts&&...); // replacement for std::make_shared int main() { f({1}); } 此情况在C ++标准的[temp.deduct.call/1]中进行了描述: 模板自变量推导是通过将每个包含参与模板自变量推导的模板参数的函数模板参数类型(称为P)与调用的相应自变量的类型(称为A)进行比较来完成的如下面所描述的。如果从P中删除引用和简历限定符,则给出某些std::initializer_list<P′>和P′[N]的P′或N,并且该参数是非空的初始化列表([dcl.init.list]),然后分别对初始化列表的每个元素进行推导,将P′作为单独的功能模板参数类型,将P′i和第i个初始值设定项元素用作相应的参数。在P′[N]的情况下,如果N是非类型模板参数,则从初始化器列表的长度推导N。 否则,初始化列表参数会使该参数视为非推论上下文 ([temp.deduct.type])。根据您的情况,最后一句话适用。有趣的是,该错误消息还显示了GCC的其他信息,这很奇怪。使用Clang,错误消息很明显: error: no matching function for call to 'f' note: candidate template ignored: substitution failure: deduced incomplete pack <(no value)> for template parameter 'Ts'

#include A类{}; ...

回答 1 投票 4

使用一个函数调用C ++初始化多个常量类成员

如果我有两个不同的常量成员变量,都需要基于同一函数调用进行初始化,是否有一种方法可以在不两次调用函数的情况下进行?例如,一个...

回答 2 投票 4

用构造的结构对象填充向量的问题

我正在使用ncurses实现我的餐饮哲学家问题版本,并且遇到了初始化Fork对象向量的问题。 #include #include #include&...

回答 1 投票 -1

使用带有一个元素的初始化列表构造std :: vector [重复]

请考虑以下程序,定义一个包含值13的std :: vector:std :: vector vec {13};这也可能被解释为对初始化...

回答 1 投票 0

为什么对重载函数的调用不明确?

考虑此程序-#include #include #include void fun(const std :: string&val){} void fun(std :: vector val){} int main(){.. 。

回答 2 投票 0

遍历std :: initializer_list

//参数包总和示例constexpr int sum(int N = 0){return N; } template constexpr int sum(int first,int second,Args ... N){返回第一+第二+ sum(N ...); ...

回答 2 投票 1

如何从初始化列表中分配数组

我对c ++的了解有限。我尝试编译c ++库,并在运行以下头文件mcmc_dhs.h的make文件时#include #include // ...

回答 2 投票 15

为什么用结构初始化数组需要指定结构名称

为什么此代码会产生编译时错误? #include #include #include 使用命名空间std :: string_view_literals;枚举类my_enum:std :: ......>

回答 2 投票 2

如何防止初始化列表中的错误值?

编写构造函数时,您有机会从其范围之外或其他不希望的情况下测试参数的值。 A类{int b;公开:a(int c){...

回答 2 投票 0

Valgrind错误:退出时正在使用:72,704字节C ++带有字符的初始化列表怪异*

问题:我有一个我没想到的奇怪问题。我有一个名为Answers的类,并且标题内是这样的:class Answer {char * aText;布尔b_correct;公共:Answer():aText(0){;} ...

回答 1 投票 7

设置向量等于{};

以下代码是否始终有效,还是依赖于编译器/平台?显然我可以使用值构造函数来初始化边,但是我很好奇能否查看副本赋值运算符= ...

回答 1 投票 2

如何在不初始化每个参数的情况下删除初始化器列表中从int到char的缩小转换?

这是我尝试做的事情:(与std :: vector 相比)char s = 4; std :: vector i; std :: vector c; i.insert(i.end(),{s + 1,s + 2,s + 3}); //没有警告c.insert(c.end(...

回答 1 投票 0

如何在C ++中迭代非常量变量?

#include struct Obj {int i; };对象a,b; int main(){for(Obj&obj:{a,b}){obj.i = 123; }}由于值...

回答 4 投票 41

© www.soinside.com 2019 - 2024. All rights reserved.