
Arkadiy Vertleyb wrote:
If anybody can try or has recently tried the proposed typeof library with any compilelr, other than GCC or MSVC, can you please let me know what the results are?
Tried it on Tru64, CXX 6.5. Run script and results are attached. Especially interesting are the compile times I think. :-) HTH, Markus CXX="cxx -version V6.5-042 -ieee -model ansi -timplicit_local -noimplicit_include -D__USE_STD_IOSTREAM -nousing_std" time $CXX -O0 -I $HOME/net/src/boost/boost_1_32_0 -I ../../../.. test_compliant.cpp odr1.cpp odr2.cpp ../main.cpp time $CXX -O0 -I $HOME/net/src/boost/boost_1_32_0 -I ../../../.. test_compliant.cpp odr1.cpp odr2.cpp ../main.cpp -DBOOST_TYPEOF_COMPLIANT test_compliant.cpp: cxx: Error: test_compliant.cpp, line 26: no instance of function template "boost::type_of::at" matches the argument list argument types are: (const boost::lambda::lambda_functor<boost::lambda::lambda_funct or_base<boost::lambda::logical_action<boost::lambda::and_ action>, boost::tuples::tuple<boost::lambda::lambda_functor<boost: :lambda::lambda_functor_base<boost::lambda::relational_ac tion<boost::lambda::greater_action>, boost::tuples::tuple<boost::lambda::lambda_functor<boost: :lambda::placeholder<1>>, const int, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>>>, boost::lambda::lambda_functor<boost::lambda::lambda_funct or_base<boost::lambda::relational_action<boost::lambda::l ess_action>, boost::tuples::tuple<boost::lambda::lambda_functor<boost: :lambda::placeholder<2>>, const int, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>>>, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>>>) BOOST_AUTO(fun, _1 > 15 && _2 < 20); ----^ cxx: Info: Error limit reached. cxx: Info: 30 errors detected in the compilation of "test_compliant.cpp". cxx: Info: Compilation terminated. odr1.cpp: cxx: Error: odr.hpp, line 19: no instance of function template "boost::type_of::at" matches the argument list argument types are: (double) detected during instantiation of class "sum_t<T, U> [with T=double, U=char]" at line 17 of "odr1.cpp" typedef BOOST_TYPEOF_TPL(T() + U()) result_type; ------------^ cxx: Info: Error limit reached. cxx: Info: 30 errors detected in the compilation of "odr1.cpp". cxx: Info: Compilation terminated. odr2.cpp: cxx: Error: odr.hpp, line 19: no instance of function template "boost::type_of::at" matches the argument list argument types are: (double) detected during instantiation of class "sum_t<T, U> [with T=double, U=char]" at line 17 of "odr2.cpp" typedef BOOST_TYPEOF_TPL(T() + U()) result_type; ------------^ cxx: Info: Error limit reached. cxx: Info: 30 errors detected in the compilation of "odr2.cpp". cxx: Info: Compilation terminated. ../main.cpp: cxx: Error: ../main.cpp, line 55: no instance of function template "boost::type_of::at" matches the argument list argument types are: ( boost::mpl::vector1<template_template::tt_test<template_t emplate::C, 4>>) detected during instantiation of class "typeof_test<T> [with T=template_template::tt_test<template_template::C, 4>]" at line 89 BOOST_TYPEOF_TPL(typeof_test_helper(reinterpret_cast<mpl::vector1<T>*>(0))), --------^ cxx: Info: Error limit reached. cxx: Info: 30 errors detected in the compilation of "../main.cpp". cxx: Info: Compilation terminated. real 17108.3 user 8393.6 sys 13.5 test_compliant.cpp: cxx: Error: test_compliant.cpp, line 26: no instance of function template "boost::type_of::at" matches the argument list argument types are: (const boost::lambda::lambda_functor<boost::lambda::lambda_funct or_base<boost::lambda::logical_action<boost::lambda::and_ action>, boost::tuples::tuple<boost::lambda::lambda_functor<boost: :lambda::lambda_functor_base<boost::lambda::relational_ac tion<boost::lambda::greater_action>, boost::tuples::tuple<boost::lambda::lambda_functor<boost: :lambda::placeholder<1>>, const int, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>>>, boost::lambda::lambda_functor<boost::lambda::lambda_funct or_base<boost::lambda::relational_action<boost::lambda::l ess_action>, boost::tuples::tuple<boost::lambda::lambda_functor<boost: :lambda::placeholder<2>>, const int, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>>>, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>>>) BOOST_AUTO(fun, _1 > 15 && _2 < 20); ----^ cxx: Info: Error limit reached. cxx: Info: 30 errors detected in the compilation of "test_compliant.cpp". cxx: Info: Compilation terminated. odr1.cpp: cxx: Error: odr.hpp, line 19: no instance of function template "boost::type_of::at" matches the argument list argument types are: (double) detected during instantiation of class "sum_t<T, U> [with T=double, U=char]" at line 17 of "odr1.cpp" typedef BOOST_TYPEOF_TPL(T() + U()) result_type; ------------^ cxx: Info: Error limit reached. cxx: Info: 30 errors detected in the compilation of "odr1.cpp". cxx: Info: Compilation terminated. odr2.cpp: cxx: Error: odr.hpp, line 19: no instance of function template "boost::type_of::at" matches the argument list argument types are: (double) detected during instantiation of class "sum_t<T, U> [with T=double, U=char]" at line 17 of "odr2.cpp" typedef BOOST_TYPEOF_TPL(T() + U()) result_type; ------------^ cxx: Info: Error limit reached. cxx: Info: 30 errors detected in the compilation of "odr2.cpp". cxx: Info: Compilation terminated. ../main.cpp: cxx: Error: ../main.cpp, line 55: no instance of function template "boost::type_of::at" matches the argument list argument types are: ( boost::mpl::vector1<template_template::tt_test<template_t emplate::C, 4>>) detected during instantiation of class "typeof_test<T> [with T=template_template::tt_test<template_template::C, 4>]" at line 89 BOOST_TYPEOF_TPL(typeof_test_helper(reinterpret_cast<mpl::vector1<T>*>(0))), --------^ cxx: Info: Error limit reached. cxx: Info: 30 errors detected in the compilation of "../main.cpp". cxx: Info: Compilation terminated. real 17459.0 user 8559.1 sys 13.1