@@ -758,6 +758,30 @@ inline c_enum_tag_typet &to_c_enum_tag_type(typet &type)
758
758
class code_typet :public typet
759
759
{
760
760
public:
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" )
761
785
code_typet ():typet(ID_code)
762
786
{
763
787
// make sure these properties are always there to avoid problems
@@ -862,8 +886,6 @@ class code_typet:public typet
862
886
add (ID_parameters).remove (ID_ellipsis);
863
887
}
864
888
865
- typedef std::vector<parametert> parameterst;
866
-
867
889
const typet &return_type () const
868
890
{
869
891
return find_type (ID_return_type);
0 commit comments