The BoostFusionVariadicUserExtension extends the BoostFusionUserExtension of BoostFusion using the variadic templates of CeePlusPlusEleven. This makes it very easy for users to define HomogeneousContainer''''''s and HeterogeneousContainer''''''s for CeePlusPlus and also define keywords which can be used to access the members of the container. The structure, types and keywords are defined at compile time but the contents can vary at run time. This is an illustration of the way in which BoostFusion combines run time and compile time features. I have done a lot of work on several versions of this extension, but in fact there are a powerful set of macros within BoostFusion which do the equivalent job. -- JohnFletcher ---- '''Implementation''' BoostFusion already has an adapter for the ''std::tuple'' in CeePlusPlusEleven. If no keywords are needed this is sufficient. A ''variadic_tuple'' is build on top to provide keyword access. There are a set of default keys, ''first'', ''second'' etc and the user can define keys which can be used. ---- '''Example''' namespace test_keys { struct Start; struct End; struct Text; } int main() { using namespace test_keys; typedef boost::mpl::vector test_key_types; typedef vtuple test_type; std::string start("Start"), end("End"),test(" of tests of variadic tuple"); test_type test_messages(start,end,test); std::cout << "===============================================" << std::endl; std::cout << at_c<0>(test_messages) << at_key(test_messages) << std::endl; std::cout << "===============================================" << std::endl; std::cout << at_c<1>(test_messages) << test_messages.any_key() << std::endl; std::cout << "===============================================" << std::endl; return 0; } ---- CategoryBoost