Bonjour

J'ai une question concernant l'implémentation de metafonction de la MPL.
Je ne comprends pourquoi quand je fait le code suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
 
#include<boost/mpl/plus.hpp>
#include<boost/mpl/apply.hpp>
#include<boost/mpl/minus.hpp>
using namespace boost;
using namespace boost::mpl;
 
 
struct plus_f2{
	 template<class T1,class T2>
	   struct apply{
		   typedef typename mpl::plus<T1,T2>::type un_type;
 
	};
};
 
int main()
{
   plus_f2::apply<int,int>::un_type d; 
}
(cf la déf page 44 dans le livre de D.Abrahams).

j'obtiens l'erreur suivante:

Error 17 error C2039: 'apply' : is not a member of 'boost::mpl::plus_impl'


Je ne comprends pas pourquoi il veut appeler la fonction apply.
On ne peut pas instancier des objets de type plus_f?
merci