Skip to content

Commit 724a36c

Browse files
Add two-param code_typet constructors and deprecate the default one
1 parent 63a5131 commit 724a36c

File tree

1 file changed

+24
-2
lines changed

1 file changed

+24
-2
lines changed

src/util/std_types.h

+24-2
Original file line numberDiff line numberDiff line change
@@ -758,6 +758,30 @@ inline c_enum_tag_typet &to_c_enum_tag_type(typet &type)
758758
class code_typet:public typet
759759
{
760760
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")
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

Comments
 (0)