拷贝构造函数中的vector成员

以下代码在VC2013中运行报错,但在VC2017中运行良好,应该是VC2013的CArray类有BUG。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <vector>
#include <string>
 
using namespace std;
 
void CMFCApplication2Dlg::OnBnClickedButton1()
{
	struct Tst01
	{
		vector<string> t01;
	};
 
	Tst01 tst01;
	tst01.t01.push_back("hi");
	CArray<Tst01, Tst01> arry;
	for (int i = 0; i < 10; i++)
	{
		arry.Add(tst01);
	}
	for (int i = 0; i < 10; i++)
	{
		Tst01 &node = arry.GetAt(i);
		Tst01 nNode(node);  // VC2013中此处报错
		printf("big is %s.\n", nNode.t01[0].c_str());
	}
}