模板化初始化列表 - 为什么查找失败
考虑到 #include template void foo(std::initializer_list> _a, std::initializer_list _b) { /* ... */ } int main() { foo({{1,2},{3,4}},{1,2,3,4…
初始化列表和移动语义
我可以将元素移出 std::initializer_list 吗? #include #include template void foo(std::initializer_list list) { for (auto it = list.begin(); i…
何时使用 alloca 为类成员释放内存分配?
class MyString { public: MyString(int length):_ptr(alloca(length)) { } //Copy Constructor, destructor, other member functions. private: void…
乱序初始化成员 - 这样可以吗?
来自对此答案的评论: 类成员按顺序初始化的声明。按照这个逻辑,下面的构造函数应该调用未定义的行为: struct Foo { Bar a; Bar b; Foo(Bar c) : a(…
从构造函数初始化列表中调用重载构造函数
在下面的代码中,我的目的是根据传递给类 的对象的参数来调用 kap (类 opacity)的两个重载构造函数之一材料: class opacity{ private: int mode; d…
如何“减少输入以创建 C”类型”使用统一初始化器?
我用 {} 玩过很多新的统一初始化。像这样: vector x = {1,2,3,4}; map getMap() { return { {1,"hello"}, {2,"you"} }; } 毫无争议的是,这个初始化…
C++11 库功能依赖于编译器特定代理
通过反复试验,我注意到某些 C++11 功能依赖于某种编译器魔法 (TM)。我一直在努力实现我自己的符合标准的 stdlib。我知道 stdlib 有现成的实现,但这…
初始化列表-构造不可复制(但可移动)对象的向量
人们可以将不可复制但可移动类型的右值push_back放入该类型的向量中: #include struct S { S(int); S(S&&); }; int main() { std::vector v; v.push_…
[c++]:构造函数中启动列表的问题
我偶然发现了一个我以前从未想过的问题。 这里是: 每个对象(在初始化列表中列出)的“构造函数”将被触发。 class B { public: B() { cout<<"B Con\…
为什么大小不是 std::initializer_list 的模板参数?
std::initializer_list 由编译器根据大括号括起来的初始化列表构造,并且该列表的大小必须是编译时常量。 那么为什么委员会决定从模板参数中省略大小…
正在使用“var{args}”进行初始化C++0x 的新功能,还是仅仅是语法糖?
我正在阅读 C++0x 常见问题 并遇到了详细说明初始值设定项列表的部分。这些例子大多是以下形式的变体: vector vi = { 1, 2, 3 }; vector vj({1, 2, 3…
分配给结构映射的语法
struct Structure { // Structure(const char* n, int v, bool a) : name(n), value(v), awesome(a) {} const char* name; int value; bool awesome; …
如何使用初始化列表初始化不可复制的容器?
可能的重复: 我可以列出初始化仅移动类型的向量吗? 我使用 gcc 4.6.1 来编译此代码 int main() { std::vector> vec({ std::unique_ptr(new int(0))…
C++0x:过载解析
在标准文本中有一个例子 8.5.4 (3) List-initialization [dcl.init.list] struct S { S(std::initializer_list); // #1 S(const std::string&); // #2…