@@ -758,6 +758,31 @@ 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)
768+ : typet(ID_code)
769+ {
770+ parameters ().swap (_parameters);
771+ return_type ().swap (_return_type);
772+ }
773+
774+ // / Constructs a new code type, i.e. function type
775+ // / \param _parameters: the vector of function parameters
776+ // / \param _return_type: the return type
777+ code_typet (parameterst &&_parameters, const typet &_return_type)
778+ : typet(ID_code)
779+ {
780+ parameters ().swap (_parameters);
781+ return_type () = _return_type;
782+ }
783+
784+ // / \deprecated
785+ DEPRECATED (" Use the two argument constructor instead" )
761786 code_typet ():typet(ID_code)
762787 {
763788 // make sure these properties are always there to avoid problems
@@ -862,8 +887,6 @@ class code_typet:public typet
862887 add (ID_parameters).remove (ID_ellipsis);
863888 }
864889
865- typedef std::vector<parametert> parameterst;
866-
867890 const typet &return_type () const
868891 {
869892 return find_type (ID_return_type);
0 commit comments