libcc1: delete copy constructor and assignment operators
Change libcc1 to use "= delete" for the copy constructor and assignment operator, rather than the old approach of private methods that are nowhere defined. libcc1 * rpc.hh (argument_wrapper): Use delete for copy constructor. * connection.hh (class connection): Use delete for copy constructor. * callbacks.hh (class callbacks): Use delete for copy constructor.
This commit is contained in:
parent
41f4381648
commit
c10a3b13fe
3 changed files with 24 additions and 32 deletions
|
@ -42,6 +42,9 @@ namespace cc1_plugin
|
||||||
callbacks ();
|
callbacks ();
|
||||||
~callbacks ();
|
~callbacks ();
|
||||||
|
|
||||||
|
callbacks (const callbacks &) = delete;
|
||||||
|
callbacks &operator= (const callbacks &) = delete;
|
||||||
|
|
||||||
// Add a callback named NAME. FUNC is the function to call when
|
// Add a callback named NAME. FUNC is the function to call when
|
||||||
// this method is invoked.
|
// this method is invoked.
|
||||||
void add_callback (const char *name, callback_ftype *func);
|
void add_callback (const char *name, callback_ftype *func);
|
||||||
|
@ -52,10 +55,6 @@ namespace cc1_plugin
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
// Declared but not defined to avoid use.
|
|
||||||
callbacks (const callbacks &);
|
|
||||||
callbacks &operator= (const callbacks &);
|
|
||||||
|
|
||||||
// The mapping.
|
// The mapping.
|
||||||
htab_t m_registry;
|
htab_t m_registry;
|
||||||
};
|
};
|
||||||
|
|
|
@ -48,6 +48,9 @@ namespace cc1_plugin
|
||||||
|
|
||||||
virtual ~connection () = default;
|
virtual ~connection () = default;
|
||||||
|
|
||||||
|
connection (const connection &) = delete;
|
||||||
|
connection &operator= (const connection &) = delete;
|
||||||
|
|
||||||
// Send a single character. This is used to introduce various
|
// Send a single character. This is used to introduce various
|
||||||
// higher-level protocol elements.
|
// higher-level protocol elements.
|
||||||
status send (char c);
|
status send (char c);
|
||||||
|
@ -95,10 +98,6 @@ namespace cc1_plugin
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
// Declared but not defined, to prevent use.
|
|
||||||
connection (const connection &);
|
|
||||||
connection &operator= (const connection &);
|
|
||||||
|
|
||||||
// Helper function for the wait_* methods.
|
// Helper function for the wait_* methods.
|
||||||
status do_wait (bool);
|
status do_wait (bool);
|
||||||
|
|
||||||
|
|
|
@ -39,6 +39,9 @@ namespace cc1_plugin
|
||||||
argument_wrapper () { }
|
argument_wrapper () { }
|
||||||
~argument_wrapper () { }
|
~argument_wrapper () { }
|
||||||
|
|
||||||
|
argument_wrapper (const argument_wrapper &) = delete;
|
||||||
|
argument_wrapper &operator= (const argument_wrapper &) = delete;
|
||||||
|
|
||||||
operator T () const { return m_object; }
|
operator T () const { return m_object; }
|
||||||
|
|
||||||
status unmarshall (connection *conn)
|
status unmarshall (connection *conn)
|
||||||
|
@ -49,10 +52,6 @@ namespace cc1_plugin
|
||||||
private:
|
private:
|
||||||
|
|
||||||
T m_object;
|
T m_object;
|
||||||
|
|
||||||
// No copying or assignment allowed.
|
|
||||||
argument_wrapper (const argument_wrapper &);
|
|
||||||
argument_wrapper &operator= (const argument_wrapper &);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Specialization for any kind of pointer. This is declared but not
|
// Specialization for any kind of pointer. This is declared but not
|
||||||
|
@ -72,6 +71,9 @@ namespace cc1_plugin
|
||||||
delete[] m_object;
|
delete[] m_object;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
argument_wrapper (const argument_wrapper &) = delete;
|
||||||
|
argument_wrapper &operator= (const argument_wrapper &) = delete;
|
||||||
|
|
||||||
operator const char * () const
|
operator const char * () const
|
||||||
{
|
{
|
||||||
return m_object;
|
return m_object;
|
||||||
|
@ -85,10 +87,6 @@ namespace cc1_plugin
|
||||||
private:
|
private:
|
||||||
|
|
||||||
char *m_object;
|
char *m_object;
|
||||||
|
|
||||||
// No copying or assignment allowed.
|
|
||||||
argument_wrapper (const argument_wrapper &);
|
|
||||||
argument_wrapper &operator= (const argument_wrapper &);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Specialization for gcc_type_array.
|
// Specialization for gcc_type_array.
|
||||||
|
@ -106,6 +104,9 @@ namespace cc1_plugin
|
||||||
delete m_object;
|
delete m_object;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
argument_wrapper (const argument_wrapper &) = delete;
|
||||||
|
argument_wrapper &operator= (const argument_wrapper &) = delete;
|
||||||
|
|
||||||
operator const gcc_type_array * () const
|
operator const gcc_type_array * () const
|
||||||
{
|
{
|
||||||
return m_object;
|
return m_object;
|
||||||
|
@ -119,10 +120,6 @@ namespace cc1_plugin
|
||||||
private:
|
private:
|
||||||
|
|
||||||
gcc_type_array *m_object;
|
gcc_type_array *m_object;
|
||||||
|
|
||||||
// No copying or assignment allowed.
|
|
||||||
argument_wrapper (const argument_wrapper &);
|
|
||||||
argument_wrapper &operator= (const argument_wrapper &);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef GCC_CP_INTERFACE_H
|
#ifdef GCC_CP_INTERFACE_H
|
||||||
|
@ -144,6 +141,9 @@ namespace cc1_plugin
|
||||||
delete m_object;
|
delete m_object;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
argument_wrapper (const argument_wrapper &) = delete;
|
||||||
|
argument_wrapper &operator= (const argument_wrapper &) = delete;
|
||||||
|
|
||||||
operator const gcc_vbase_array * () const
|
operator const gcc_vbase_array * () const
|
||||||
{
|
{
|
||||||
return m_object;
|
return m_object;
|
||||||
|
@ -157,10 +157,6 @@ namespace cc1_plugin
|
||||||
private:
|
private:
|
||||||
|
|
||||||
gcc_vbase_array *m_object;
|
gcc_vbase_array *m_object;
|
||||||
|
|
||||||
// No copying or assignment allowed.
|
|
||||||
argument_wrapper (const argument_wrapper &);
|
|
||||||
argument_wrapper &operator= (const argument_wrapper &);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Specialization for gcc_cp_template_args.
|
// Specialization for gcc_cp_template_args.
|
||||||
|
@ -181,6 +177,9 @@ namespace cc1_plugin
|
||||||
delete m_object;
|
delete m_object;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
argument_wrapper (const argument_wrapper &) = delete;
|
||||||
|
argument_wrapper &operator= (const argument_wrapper &) = delete;
|
||||||
|
|
||||||
operator const gcc_cp_template_args * () const
|
operator const gcc_cp_template_args * () const
|
||||||
{
|
{
|
||||||
return m_object;
|
return m_object;
|
||||||
|
@ -194,10 +193,6 @@ namespace cc1_plugin
|
||||||
private:
|
private:
|
||||||
|
|
||||||
gcc_cp_template_args *m_object;
|
gcc_cp_template_args *m_object;
|
||||||
|
|
||||||
// No copying or assignment allowed.
|
|
||||||
argument_wrapper (const argument_wrapper &);
|
|
||||||
argument_wrapper &operator= (const argument_wrapper &);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Specialization for gcc_cp_function_args.
|
// Specialization for gcc_cp_function_args.
|
||||||
|
@ -217,6 +212,9 @@ namespace cc1_plugin
|
||||||
delete m_object;
|
delete m_object;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
argument_wrapper (const argument_wrapper &) = delete;
|
||||||
|
argument_wrapper &operator= (const argument_wrapper &) = delete;
|
||||||
|
|
||||||
operator const gcc_cp_function_args * () const
|
operator const gcc_cp_function_args * () const
|
||||||
{
|
{
|
||||||
return m_object;
|
return m_object;
|
||||||
|
@ -230,10 +228,6 @@ namespace cc1_plugin
|
||||||
private:
|
private:
|
||||||
|
|
||||||
gcc_cp_function_args *m_object;
|
gcc_cp_function_args *m_object;
|
||||||
|
|
||||||
// No copying or assignment allowed.
|
|
||||||
argument_wrapper (const argument_wrapper &);
|
|
||||||
argument_wrapper &operator= (const argument_wrapper &);
|
|
||||||
};
|
};
|
||||||
#endif /* GCC_CP_INTERFACE_H */
|
#endif /* GCC_CP_INTERFACE_H */
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue