Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c++ > #14570

Re: A question on "uncopyable" that disable copy constructor

From Ian Collins <ian-news@hotmail.com>
Newsgroups comp.lang.c++
Subject Re: A question on "uncopyable" that disable copy constructor
Date 2012-02-28 17:18 +1300
Message-ID <9r32s9Fcg8U1@mid.individual.net> (permalink)
References (1 earlier) <slrnjkieqh.1ls.grahn+nntp@frailea.sa.invalid> <jig452$rua$1@dont-email.me> <slrnjkn9pb.1ls.grahn+nntp@frailea.sa.invalid> <jiga7c$4rs$1@dont-email.me> <slrnjknrit.1ls.grahn+nntp@frailea.sa.invalid>

Show all headers | View raw


On 02/28/12 09:58 AM, Jorgen Grahn wrote:
> On Mon, 2012-02-27, yatremblay@bel1lin202.(none) (Yannick Tremblay) wrote:
>>
>> We have the HomeForSale class.  It is non-sensical to copy a
>> HomeForSale and the concept a a default HomeForSale is also
>> non-sensical (we don't live in dark utopia of default homes :-)
>>
>> But /just to avoid using any kind of pointers/, you find a way to
>> implement copying and default construction that you then need to
>> document to explain to future generation that they should never be
>> used per se and that they are only a hack to fullfill the std::vector
>> requirements...
>
> That's right. I assume most people do it that way.
> (If most people here don't, I'd like to hear about it!)

Well I wouldn't.  I hardly ever store Ts in a vector.  More often than 
not I use a container of shared_ptr<T>.  Adding a copy constructor when 
your class design doesn't warrant one is poor form.  Consider what will 
happen if you later need to add a reference member or a managed resource 
to your class.

>> Why is using "any kind of pointer" such a bad thing that it is worth
>> jumping through hoop to avoid doing it?
>
> I don't enjoy doing it, but "jumping through hoops" is overstating the
> problem.
>
> Performance, convoluted syntax, manual memory management. Probably
> many other reasons too which I haven't thought of because I haven't
> encountered those problems.
>
> I'm also not sure that I'd prefer finding a null pointer in my array,
> compared to finding a nil HomeForSale.

Using shared_ptr<T> removes most of those issues.

-- 
Ian Collins

Back to comp.lang.c++ | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

A question on "uncopyable" that disable copy constructor TH <python152@gmail.com> - 2012-02-22 20:45 -0800
  Re: A question on "uncopyable" that disable copy constructor Ian Collins <ian-news@hotmail.com> - 2012-02-23 18:33 +1300
    Re: A question on "uncopyable" that disable copy constructor Jorgen Grahn <grahn+nntp@snipabacken.se> - 2012-02-23 08:47 +0000
      Re: A question on "uncopyable" that disable copy constructor Ian Collins <ian-news@hotmail.com> - 2012-02-26 08:16 +1300
        Re: A question on "uncopyable" that disable copy constructor Jorgen Grahn <grahn+nntp@snipabacken.se> - 2012-02-25 19:49 +0000
          Re: A question on "uncopyable" that disable copy constructor yatremblay@bel1lin202.(none) (Yannick Tremblay) - 2012-02-27 14:32 +0000
            Re: A question on "uncopyable" that disable copy constructor Jorgen Grahn <grahn+nntp@snipabacken.se> - 2012-02-27 15:54 +0000
              Re: A question on "uncopyable" that disable copy constructor yatremblay@bel1lin202.(none) (Yannick Tremblay) - 2012-02-27 16:15 +0000
                Re: A question on "uncopyable" that disable copy constructor Jorgen Grahn <grahn+nntp@snipabacken.se> - 2012-02-27 20:58 +0000
                Re: A question on "uncopyable" that disable copy constructor Ian Collins <ian-news@hotmail.com> - 2012-02-28 17:18 +1300
                Re: A question on "uncopyable" that disable copy constructor Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2012-02-28 00:00 -0500
                Re: A question on "uncopyable" that disable copy constructor Ian Collins <ian-news@hotmail.com> - 2012-02-28 20:09 +1300
                Re: A question on "uncopyable" that disable copy constructor Jorgen Grahn <grahn+nntp@snipabacken.se> - 2012-02-28 21:19 +0000
                Re: A question on "uncopyable" that disable copy constructor Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2012-03-04 01:05 -0500
                Re: A question on "uncopyable" that disable copy constructor 88888 Dihedral <dihedral88888@googlemail.com> - 2012-03-04 18:01 -0800
                Re: A question on "uncopyable" that disable copy constructor Jorgen Grahn <grahn+nntp@snipabacken.se> - 2012-02-28 22:02 +0000
                Re: A question on "uncopyable" that disable copy constructor Ian Collins <ian-news@hotmail.com> - 2012-02-29 11:15 +1300
  Re: A question on "uncopyable" that disable copy constructor Miles Bader <miles@gnu.org> - 2012-02-23 15:14 +0900
    Re: A question on "uncopyable" that disable copy constructor "T.H." <python152@gmail.com> - 2012-02-23 01:51 -0800
  Re: A question on "uncopyable" that disable copy constructor bartek szurgot <basz@no.spam> - 2012-02-24 17:18 +0100
    Re: A question on "uncopyable" that disable copy constructor Juha Nieminen <nospam@thanks.invalid> - 2012-02-25 19:10 +0000
      Re: A question on "uncopyable" that disable copy constructor Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2012-02-25 17:45 -0500
        Re: A question on "uncopyable" that disable copy constructor Juha Nieminen <nospam@thanks.invalid> - 2012-02-26 09:38 +0000
          Re: A question on "uncopyable" that disable copy constructor Juha Nieminen <nospam@thanks.invalid> - 2012-02-26 09:42 +0000
          Re: A question on "uncopyable" that disable copy constructor Pavel <pauldontspamtolk@removeyourself.dontspam.yahoo> - 2012-02-27 23:23 -0500
      Re: A question on "uncopyable" that disable copy constructor 88888 Dihedral <dihedral88888@googlemail.com> - 2012-02-28 17:01 -0800

csiph-web