C++ C++;:使用元组的TypeDef
我正在尝试使用元组创建一个typedef,这是我的代码C++ C++;:使用元组的TypeDef,c++,C++,我正在尝试使用元组创建一个typedef,这是我的代码 #include <iostream> #include <boost/tuple/tuple.hpp> #include <boost/tuple/tuple_io.hpp> #include "boost/tuple/tuple_comparison.hpp" using namespace std; typedef tuple<std::string, unsigned i
#include <iostream>
#include <boost/tuple/tuple.hpp>
#include <boost/tuple/tuple_io.hpp>
#include "boost/tuple/tuple_comparison.hpp"
using namespace std;
typedef tuple<std::string, unsigned int, double> Person;
void Print(Person people)
{
};
int main()
{
using boost::tuple;
Person p0 (string("Udbhav"),10,10);
return 0;
}
#包括
#包括
#包括
#包括“boost/tuple/tuple\u comparison.hpp”
使用名称空间std;
typedef元组人;
作废打印(人)
{
};
int main()
{
使用boost::tuple;
人p0(字符串(“Udbhav”),10,10;
返回0;
}
执行此操作时,我无法从boost调用p0上的get()。有人能指出我做错了什么吗?您的程序中有一个问题,您使用了讨厌的
名称空间std代码>语句,因此您的typedef
将元组解析为std::tuple
。看起来您假设使用boost::tuplemain()
中的code>允许您使用boost中的一个,这是错误的typedef
不是宏,名称解析发生在声明时,而不是使用它。您可以通过使用namespace std删除来测试这一点代码>和您的typedef
将无法编译:
谢谢你的帮助。确保性病不会成为一个问题,并且有效。这是解决办法
#include <iostream>
#include <boost/tuple/tuple.hpp>
#include <boost/tuple/tuple_io.hpp>
#include "boost/tuple/tuple_comparison.hpp"
using namespace std;
typedef boost::tuple<string,unsigned int,double> Person;
void Print(Person people)
{
cout << "Name : " << people.get<0>() << endl;
cout<< "Age : " << people.get<1>() << endl;
cout << "Height : " << people.get<2>() << endl;
};
int main()
{
using boost::tuple;
Person p0("Shuniya",0,0);
Person p1("Alpha",1,1);
Person p2("Beta", 2, 2);
Print(p0);
p0.get<1>() = 1;
Print(p0);
return 0;
}
#包括
#包括
#包括
#包括“boost/tuple/tuple\u comparison.hpp”
使用名称空间std;
typedef boost::元组人;
作废打印(人)
{
cout@Slava适用于较小的程序。告诉我们您在哪里使用p0.get()?@RohanBari正确,除非它产生OP存在的问题。@Daiboost::tuple
在没有命名空间的情况下无法解决。typedef
不是宏号,不包括任何其他文件。我正在尝试访问get()函数本身。尝试在人p0上调用它。