Ich habe folgenden Code:
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace boost::mpl;
typedef list_c evens;
typedef list_c primes;
typedef list_c sums;
typedef transform< evens, primes, plus<> >::type result;
BOOST_MPL_ASSERT(( equal< result,sums,equal_to<_1,_2> > ));
int main()
{
std::cout << typeid(sums).name() << std::endl << typeid(result).name() << std::endl;
assert(typeid(sums) == typeid(result));
}
Es kompiliert, also gilt die BOOST_MPL_ASSERT. Allerdings schlägt die Überprüfung in der main-Funktion fehl. Was bedeutet das? Sollten nicht zwei list_c-Dinge (mir fehlt das richtige Wort) mit den gleichen Elementen denselben Typ definieren?
Vielen Dank für deine Hilfe.