gpt4 book ai didi

c++ - 如何使这个模板类在 VC6 和 VC9 中编译

转载 作者:搜寻专家 更新时间:2023-10-31 00:05:57 27 4
gpt4 key购买 nike

我有一个在 VC6 中编译良好的模板类。但它不是在VC9中编译的。为此,我在一种类型前添加了“typename”关键字。在此之后,它在 vc9 中编译,但在 VC6 中不编译。我如何使用这两种编译器进行编译。

#include <map> 
#include <vector>

template <class T1, class T2>
class A
{
public:
std::pair<typename std::vector<std::pair<T1,T2> >::iterator, bool > insert(const std::pair<T1 ,T2> &value_in);
};

template <class T1, class T2>
std::pair< std::vector<std::pair<T1,T2> >::iterator, bool> A<T1,T2>::insert(const std::pair<T1 ,T2>& value_in)
{
std::pair< std::vector<std::pair<T1,T2> >::iterator, bool> b;
return b;
}

void main()
{
A<int, int> a;
a.insert(std::pair<int, int>(0, 0));
}

以上代码在 VC6 中编译。但不是在 VC9 中。以下代码适用于 VC9,不适用于 VC6。

#include <map> 
#include <vector>

template <class T1, class T2>
class A
{
public:
std::pair<typename std::vector<std::pair<T1,T2> >::iterator, bool > insert(const std::pair<T1 ,T2> &value_in);
};

template <class T1, class T2>
std::pair<typename std::vector<std::pair<T1,T2> >::iterator, bool> A<T1,T2>::insert(const std::pair<T1 ,T2>& value_in)
{
std::pair< std::vector<std::pair<T1,T2> >::iterator, bool> b;
return b;
}

void main()
{
A<int, int> a;
a.insert(std::pair<int, int>(0, 0));
}

最佳答案

VC6 不是很符合标准。你可能只需要#IFDEF 解决这个问题。

关于c++ - 如何使这个模板类在 VC6 和 VC9 中编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1109050/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com