[info] type_name = "std::set" stub_template_params = [1,2] ctype = "SET_TYPE" header = "set" # Old: typeName = "std::set<" ns = ["namespace std"] numTemplateParams = 1 replaceTemplateParamIndex = [1] allocatorIndex = 2 [codegen] decl = """ template void getSizeType(const %1% &container, size_t& returnArg); """ func = """ template void getSizeType(const %1% &container, size_t& returnArg) { constexpr size_t nodeSize = sizeof(typename %1%::node_type); size_t numElems = container.size(); SAVE_SIZE(sizeof(%1%) + (nodeSize * numElems)); SAVE_DATA((uintptr_t)nodeSize); SAVE_DATA((uintptr_t)numElems); // The double ampersand is needed otherwise this loop doesn't work with vector for (auto&& it: container) { getSizeType(it, returnArg); } } """