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
@ -42,6 +42,9 @@ namespace cc1_plugin
|
||||
callbacks ();
|
||||
~callbacks ();
|
||||
|
||||
callbacks (const callbacks &) = delete;
|
||||
callbacks &operator= (const callbacks &) = delete;
|
||||
|
||||
// Add a callback named NAME. FUNC is the function to call when
|
||||
// this method is invoked.
|
||||
void add_callback (const char *name, callback_ftype *func);
|
||||
@ -52,10 +55,6 @@ namespace cc1_plugin
|
||||
|
||||
private:
|
||||
|
||||
// Declared but not defined to avoid use.
|
||||
callbacks (const callbacks &);
|
||||
callbacks &operator= (const callbacks &);
|
||||
|
||||
// The mapping.
|
||||
htab_t m_registry;
|
||||
};
|
||||
|
@ -48,6 +48,9 @@ namespace cc1_plugin
|
||||
|
||||
virtual ~connection () = default;
|
||||
|
||||
connection (const connection &) = delete;
|
||||
connection &operator= (const connection &) = delete;
|
||||
|
||||
// Send a single character. This is used to introduce various
|
||||
// higher-level protocol elements.
|
||||
status send (char c);
|
||||
@ -95,10 +98,6 @@ namespace cc1_plugin
|
||||
|
||||
private:
|
||||
|
||||
// Declared but not defined, to prevent use.
|
||||
connection (const connection &);
|
||||
connection &operator= (const connection &);
|
||||
|
||||
// Helper function for the wait_* methods.
|
||||
status do_wait (bool);
|
||||
|
||||
|
@ -39,6 +39,9 @@ namespace cc1_plugin
|
||||
argument_wrapper () { }
|
||||
~argument_wrapper () { }
|
||||
|
||||
argument_wrapper (const argument_wrapper &) = delete;
|
||||
argument_wrapper &operator= (const argument_wrapper &) = delete;
|
||||
|
||||
operator T () const { return m_object; }
|
||||
|
||||
status unmarshall (connection *conn)
|
||||
@ -49,10 +52,6 @@ namespace cc1_plugin
|
||||
private:
|
||||
|
||||
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
|
||||
@ -72,6 +71,9 @@ namespace cc1_plugin
|
||||
delete[] m_object;
|
||||
}
|
||||
|
||||
argument_wrapper (const argument_wrapper &) = delete;
|
||||
argument_wrapper &operator= (const argument_wrapper &) = delete;
|
||||
|
||||
operator const char * () const
|
||||
{
|
||||
return m_object;
|
||||
@ -85,10 +87,6 @@ namespace cc1_plugin
|
||||
private:
|
||||
|
||||
char *m_object;
|
||||
|
||||
// No copying or assignment allowed.
|
||||
argument_wrapper (const argument_wrapper &);
|
||||
argument_wrapper &operator= (const argument_wrapper &);
|
||||
};
|
||||
|
||||
// Specialization for gcc_type_array.
|
||||
@ -106,6 +104,9 @@ namespace cc1_plugin
|
||||
delete m_object;
|
||||
}
|
||||
|
||||
argument_wrapper (const argument_wrapper &) = delete;
|
||||
argument_wrapper &operator= (const argument_wrapper &) = delete;
|
||||
|
||||
operator const gcc_type_array * () const
|
||||
{
|
||||
return m_object;
|
||||
@ -119,10 +120,6 @@ namespace cc1_plugin
|
||||
private:
|
||||
|
||||
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
|
||||
@ -144,6 +141,9 @@ namespace cc1_plugin
|
||||
delete m_object;
|
||||
}
|
||||
|
||||
argument_wrapper (const argument_wrapper &) = delete;
|
||||
argument_wrapper &operator= (const argument_wrapper &) = delete;
|
||||
|
||||
operator const gcc_vbase_array * () const
|
||||
{
|
||||
return m_object;
|
||||
@ -157,10 +157,6 @@ namespace cc1_plugin
|
||||
private:
|
||||
|
||||
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.
|
||||
@ -181,6 +177,9 @@ namespace cc1_plugin
|
||||
delete m_object;
|
||||
}
|
||||
|
||||
argument_wrapper (const argument_wrapper &) = delete;
|
||||
argument_wrapper &operator= (const argument_wrapper &) = delete;
|
||||
|
||||
operator const gcc_cp_template_args * () const
|
||||
{
|
||||
return m_object;
|
||||
@ -194,10 +193,6 @@ namespace cc1_plugin
|
||||
private:
|
||||
|
||||
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.
|
||||
@ -217,6 +212,9 @@ namespace cc1_plugin
|
||||
delete m_object;
|
||||
}
|
||||
|
||||
argument_wrapper (const argument_wrapper &) = delete;
|
||||
argument_wrapper &operator= (const argument_wrapper &) = delete;
|
||||
|
||||
operator const gcc_cp_function_args * () const
|
||||
{
|
||||
return m_object;
|
||||
@ -230,10 +228,6 @@ namespace cc1_plugin
|
||||
private:
|
||||
|
||||
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 */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user