#include "stdafx.h" #include #include //#include //#include //#include #include #define TRY_BLOAT struct t1; #ifdef TRY_BLOAT struct t2; struct t3; struct t4; struct t5; struct t6; struct t7; struct t8; struct t9; #else typedef t1 t2; typedef t1 t3; typedef t1 t4; typedef t1 t5; typedef t1 t6; typedef t1 t7; typedef t1 t8; typedef t1 t9; #endif template< class T > void testFct(T t) { std::cout << t << std::endl; } int main() { { //t1 e; std::vector v; // v.assign(10,&e); v.push_back(0); std::cout << v.size() << std::endl; BOOST_FOREACH(t1* t, v) { std::cout << t << std::endl; } } { //t1 e; std::vector v; // v.assign(10,&e); v.push_back(0); std::cout << v.size() << std::endl; BOOST_FOREACH(t9* t, v) { std::cout << t << std::endl; } } { //t1 e; std::vector v; // v.assign(10,&e); v.push_back(0); std::cout << v.size() << std::endl; BOOST_FOREACH(t8* t, v) { std::cout << t << std::endl; } } { //t1 e; std::vector v; // v.assign(10,&e); v.push_back(0); std::cout << v.size() << std::endl; BOOST_FOREACH(t7* t, v) { std::cout << t << std::endl; } } { //t1 e; std::vector v; // v.assign(10,&e); v.push_back(0); std::cout << v.size() << std::endl; BOOST_FOREACH(t6* t, v) { std::cout << t << std::endl; } } { //t1 e; std::vector v; // v.assign(10,&e); v.push_back(0); std::cout << v.size() << std::endl; BOOST_FOREACH(t5* t, v) { std::cout << t << std::endl; } } { //t1 e; std::vector v; // v.assign(10,&e); v.push_back(0); std::cout << v.size() << std::endl; BOOST_FOREACH(t4* t, v) { std::cout << t << std::endl; } } { //t1 e; std::vector v; // v.assign(10,&e); v.push_back(0); std::cout << v.size() << std::endl; BOOST_FOREACH(t3* t, v) { std::cout << t << std::endl; } } { //t1 e; std::vector v; // v.assign(10,&e); v.push_back(0); std::cout << v.size() << std::endl; BOOST_FOREACH(t2* t, v) { std::cout << t << std::endl; } } std::cout << "ptr1: " << static_cast< void(*)(t1*) >(&testFct) << std::endl; std::cout << "ptr2: " << static_cast< void(*)(t2*) >(&testFct) << std::endl; return 0; } /* int main(int argc, char* argv[]) { return 0; } */