Bonjour à tous,

J'utilise Boost 1.44, et là je tombe sur un truc marrant (ou pas):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
std::set<std::pair<int, int> > my_set;
for (auto iter = m_generators.begin(); iter != m_generators.end(); ++iter)
{
	const std::vector<std::pair<int, int> >& t = (*iter)->GetTimeStamps();
	BOOST_FOREACH(const std::pair<int, int>& p, t)
	{
		my_set.insert(p);
	}
}
Ca compile pas sous gcc 4.4.3 : 47: error: macro "BOOST_FOREACH" passed 3 arguments, but takes just 2

Alors que
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
std::set<std::pair<int, int> > my_set;
for (auto iter = m_generators.begin(); iter != m_generators.end(); ++iter)
{
	const std::vector<std::pair<int, int> >& t = (*iter)->GetTimeStamps();
        typedef std::pair<int,int> pair;
	BOOST_FOREACH(const pair& p, t)
	{
		my_set.insert(p);
	}
}
ça compile !
J'ai l'impression qu'il prend la virgule de la pair dans le parseur...
Bug, ou bien y'a un truc qui m'échappe ?