小编mrs*_*mrs的帖子

C++模板静态成员实例化

#include <map>
#include <iostream>
template <typename T>
class A 
{
 static std::map<int, int> data;
public:
 A()
 {
  std::cout << data.size() << std::endl;
  data[3] = 4;
 }
};

template <typename T>
std::map<int, int> A<T>::data;

//std::map<int, int> A<char>::data;

A<char> a;

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

这有什么问题?如果没有明确的实例化,它就会破坏

 data[3] = 4; 
显式实例化解决了问题但程序在之后中断
std::cout << data.size() << std::endl;
什么意思是静态类模板memeber data被实例化.

c++ static templates instantiation member

15
推荐指数
1
解决办法
8671
查看次数

标签 统计

c++ ×1

instantiation ×1

member ×1

static ×1

templates ×1