A Sample auto_ptr implementation

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Hendrik Schober

    #16
    Re: A Sample auto_ptr implementation

    Barry wrote:
    On Oct 17, 6:16 pm, Hendrik Schober <spamt...@gmx.d ewrote:
    >Barry wrote:
    >>On Oct 15, 11:22 pm, Hendrik Schober <spamt...@gmx.d ewrote:
    >>>Barry wrote:
    [...]
    >>#include <memory>
    >>int main()
    >>{
    >> std::auto_ptr<i ntp1 = new int(10); // this shouldn't work
    >> std::auto_ptr<i ntp2(new int(10)); // should be like this!
    >>}
    >>[...]
    > It doesn't seem to be a compielr bug, though, as a simple
    > test with my own class makes the first line fail.
    >
    Maybe some Serive Package fix this.
    I tried the code on Dinkumware

    it fails too.
    Um, I think I've been unclear. The first line compiles with
    'std::auto_ptr< >' but this fails:

    class test {
    public:
    explicit test(void*) {}
    };

    int main()
    {
    ´ test t1 = new int; // fails
    test t2(new int); // compiles
    return 0;
    }


    So it's probably not a problem of the compiler, but of the
    std lib implementation that came with it.
    Best Regards
    Barry
    Schobi

    P.S.: BTW, never put pointers to arrays into 'std::auto_ptr< >'.

    Comment

    • Barry

      #17
      Re: A Sample auto_ptr implementation

      On Oct 21, 2:26 am, Hendrik Schober <spamt...@gmx.d ewrote:
      Barry wrote:
      On Oct 17, 6:16 pm, Hendrik Schober <spamt...@gmx.d ewrote:
      Barry wrote:
      >On Oct 15, 11:22 pm, Hendrik Schober <spamt...@gmx.d ewrote:
      >>Barry wrote:
      [...]
      >#include <memory>
      >int main()
      >{
      >    std::auto_ptr<i ntp1 = new int(10); // this shouldn't work
      >    std::auto_ptr<i ntp2(new int(10));  // should be like this!
      >}
      >[...]
        It doesn't seem to be a compielr bug, though, as a simple
        test with my own class makes the first line fail.
      >
      Maybe some Serive Package fix this.
      I tried the code on Dinkumware

      it fails too.
      >
        Um, I think I've been unclear. The first line compiles with
        'std::auto_ptr< >' but this fails:
      >
          class test {
          public:
            explicit test(void*) {}
          };
      >
          int main()
          {
      ´    test t1 = new int; // fails
            test t2(new int);  // compiles
            return 0;
          }
      >
        So it's probably not a problem of the compiler, but of the
        std lib implementation that came with it.
      yes, it only comes specially with auto_ptr
      >
      Best Regards
      Barry
      >
        Schobi
      >
        P.S.: BTW, never put pointers to arrays into 'std::auto_ptr< >'.
      I think you were confused the syntax of "new int(10)" with "new
      int[10]"
      it mean "new an integer with initial value 10"
      --
      Best Regards
      Barry

      Comment

      • Hendrik Schober

        #18
        Re: A Sample auto_ptr implementation

        Barry wrote:
        [...]
        > P.S.: BTW, never put pointers to arrays into 'std::auto_ptr< >'.
        >
        I think you were confused the syntax of "new int(10)" with "new
        int[10]"
        it mean "new an integer with initial value 10"
        Yes, I was. Sorry for that brainfart.
        Barry
        Schobi

        Comment

        Working...