Op donderdag 17-06-2010 om 00:41 uur [tijdzone -0300], schreef Han-Wen
Nienhuys:

> > * Why are all the casts there?

casts are mostly bad and often indication that something is wrong.

>  It is probably an easier fix to change vsize to be an int again.

This may be easiest fix and probably wrong.  The vsize fix was
chosen to identify problem areas and work to be done: it was an
easy way of saying:we moved from flower arrays to std::vector,
change to size_t or something as appropriate.

Possibly I'm rambling and it's more useful to discuss actual
code than ideas.  Are we thinking of using INTs for vector
sizes as in the code below?  If so, why would that work?

Greetings,
Jan.

    #include <limits.h>
    #include <stdio.h>
    #include <vector>

    using std::vector;

    int
    main ()
    {
      vector<short> x (INT_MAX+1ULL);
      int size_i = x.size ();
      size_t size_u = x.size ();
      printf ("i:%d, z:%zd\n", size_i, size_u);
      for (int i = 0; i < size_i; i++)
        return 0;
      printf ("FAIL!\n");
      return 1;
    }

    $ g++     v.cc   -o v -Woverloaded-virtual -fno-strict-aliasing  -g -fwrapv 
-Wno-pmf-conversions -W -Wall -Wconversion 
    v.cc: In function ‘int main()’:
    v.cc:11: warning: conversion to ‘int’ from ‘size_t’ may alter its value
    10:03:16 jann...@peder:~/src/c++
    $ ./v
    i:-2147483648, z:2147483648
    FAIL!
    [1]10:04:16 jann...@peder:~/src/c++


-- 
Jan Nieuwenhuizen <jann...@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyOfSource.com | Avatar®  http://AvatarAcademy.nl  



_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to