相关疑难解决方法(0)

为什么STL-Datastructures需要完全定义的类型

在寻找这个问题的解决方案时,我在另一个论坛上找到了这个帖子,该论文说该标准要求完全定义STL-Datastructure的所有模板参数.这意味着生成一个结构,该结构在其自身内部存储其自身类型的元素,从而调用未定义的行为.但是据我所知,这是没有抓到最前的C++ 11数据结构(即std::vector,std::map等).

实际上可能是在STL-Datastructures中使用不完整类型的问题?或者更确切地说,以下代码可能导致的潜在危险:

#include <stdint.h>
#include <map>

struct Test {
  std::map<uint32_t, Test> m_map1;
};

int main() {
  return 1;
}
Run Code Online (Sandbox Code Playgroud)

或者这是这些问题之一,这些代码可能无法使用某些STL实现编译,但如果它编译,您可以确定它有效吗?

c++ stl undefined-behavior

6
推荐指数
1
解决办法
268
查看次数

包含自身映射的C++ Struct

简单的问题:我如何让它工作?

struct A {
    double whatever; 
    std::unordered_map<std::string, A> mapToMoreA; 
}
Run Code Online (Sandbox Code Playgroud)

g ++错误:std :: pair <_T1,_T2> :: second的类型不完整

据我所知,在实例化地图时,编译器需要知道A的大小,但它不知道这个,因为地图是在A的声明中声明的,所以这是解决这个问题的唯一方法来使用指针A(不喜欢这样做)?

c++ syntax compiler-errors

6
推荐指数
1
解决办法
1463
查看次数

标签 统计

c++ ×2

compiler-errors ×1

stl ×1

syntax ×1

undefined-behavior ×1