@@ -758,6 +758,30 @@ inline c_enum_tag_typet &to_c_enum_tag_type(typet &type)
758758class code_typet :public typet
759759{
760760public:
761+ class parametert ;
762+ typedef std::vector<parametert> parameterst;
763+
764+ // / Constructs a new code type, i.e. function type
765+ // / \param _parameters: the vector of function parameters
766+ // / \param _return_type: the return type
767+ code_typet (parameterst &&_parameters, typet &&_return_type) : typet(ID_code)
768+ {
769+ parameters ().swap (_parameters);
770+ return_type ().swap (_return_type);
771+ }
772+
773+ // / Constructs a new code type, i.e. function type
774+ // / \param _parameters: the vector of function parameters
775+ // / \param _return_type: the return type
776+ code_typet (parameterst &&_parameters, const typet &_return_type)
777+ : typet(ID_code)
778+ {
779+ parameters ().swap (_parameters);
780+ return_type () = _return_type;
781+ }
782+
783+ // / \deprecated
784+ DEPRECATED (" Use the two argument constructor instead" )
761785 code_typet ():typet(ID_code)
762786 {
763787 // make sure these properties are always there to avoid problems
@@ -862,8 +886,6 @@ class code_typet:public typet
862886 add (ID_parameters).remove (ID_ellipsis);
863887 }
864888
865- typedef std::vector<parametert> parameterst;
866-
867889 const typet &return_type () const
868890 {
869891 return find_type (ID_return_type);
0 commit comments