Gabriel Viganotti | 1 Dec 18:19 2010
Picon

Re: Re: Comportamiento muy raro

Dani, yo voy a saltar en defensa de Marcelo...ya que se hizo cargo :-D

Creo que mas allá de que si/no se deba usar el C-style casting lo
interesante era ver porque no daba el resultado que muchos
(incluyendome) hubieran esperado, no? :-)

2010/11/30 Daniel Gutson <danielgutson@...>:
> Aprovecho para aclarar, y preguntar (especialmente para q respondan los del
> clericó :) )
> a) El orden de preferencia de cast es el siguiente:
>
> Function-syle cast (o C++-style cast), ej T(x)
> Static-cast
> Dynamic-cast
> reinterpret-cast
> reinterpret-cast + const-cast
> C-style cast
>
> (obviamente ya a partir del 4to hay alto nivel de oscuridad).
> b) PREGUNTA: en qué casos se llama al casting operator, si fue sobrecargado?
>
> 2010/11/30 Nicolas Bertoa <nicobertoa@...>
>>
>>  <at> Daniel:
>>
>> Jajaja no hay drama, no lo tome de tal forma. Ahora lo probe con
>> static_cast y salta el error de compilacion al querer hacer eso. Ahora
>> entiendo pq en los libros que he leido aconseja siempre usar ese tipo
>> de casteo y no el de C.
>>
(Continue reading)

Daniel Gutson | 1 Dec 20:04 2010
Picon

Re: Re: Comportamiento muy raro

q resultado esperabas/n ?


2010/12/1 Gabriel Viganotti <gabrielviganotti-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Dani, yo voy a saltar en defensa de Marcelo...ya que se hizo cargo :-D

Creo que mas allá de que si/no se deba usar el C-style casting lo
interesante era ver porque no daba el resultado que muchos
(incluyendome) hubieran esperado, no? :-)



2010/11/30 Daniel Gutson <danielgutson-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>:
> Aprovecho para aclarar, y preguntar (especialmente para q respondan los del
> clericó :) )
> a) El orden de preferencia de cast es el siguiente:
>
> Function-syle cast (o C++-style cast), ej T(x)
> Static-cast
> Dynamic-cast
> reinterpret-cast
> reinterpret-cast + const-cast
> C-style cast
>
> (obviamente ya a partir del 4to hay alto nivel de oscuridad).
> b) PREGUNTA: en qué casos se llama al casting operator, si fue sobrecargado?
>
> 2010/11/30 Nicolas Bertoa <nicobertoa-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>>
>> <at> Daniel:
>>
>> Jajaja no hay drama, no lo tome de tal forma. Ahora lo probe con
>> static_cast y salta el error de compilacion al querer hacer eso. Ahora
>> entiendo pq en los libros que he leido aconseja siempre usar ese tipo
>> de casteo y no el de C.
>>
>> Gracias por la aclaracion!
>>
>>
>> On 30 nov, 20:25, Daniel Gutson <danielgut...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>> > (Nico, no era para vos el palo ;-) )
>> >
>> > 2010/11/30 Daniel Gutson <danielgut...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> > > AHHHHH
>> >
>> > > PERDON, puedo intervenir??? :p    (manera de decir que paren de...)
>> >
>> > > Lo que pasa es que el C-STYLE CAST es una bosta, y deshabilita el
>> > > const-checking.
>> > > Si reemplazás con static_cast<char*>(&c) vas a tener otros resultados.
>> >
>> > > Conclusión #1: NO MANDAR FRUTA. ante la duda, "creo que..." :)
>> > > Conclusión #2: no usar c-style casts.
>> >
>> > >   Daniel.
>> >
>> > > 2010/11/30 Nicolas Bertoa <nicober...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>> >
>> > > Hable con Marcelo Caro (usuario de este foro) y me mostro que
>> > >> colocando la sentencia volatile en
>> >
>> > >>  const volatile char c = 'a';
>> >
>> > >> el comportamiento obtenido es el deseado o sea, se imprime el valor
>> > >> 'c' y las mismas direcciones de memoria.
>> >
>> > >> On Nov 30, 12:10 pm, RFOG <rafael.ontiv...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>> > >> > Sí, eso es lo que he visto en Visual C++. Supongo que si luego no
>> > >> > se
>> > >> hace
>> > >> > referencia a c en ningún otro lado, el optimizador del linker (o
>> > >> > incluso
>> > >> el
>> > >> > del compilador) la eliminaría...
>> >
>> > >> > De todos modos considero que el compilador debería emitir un
>> > >> > warning al
>> > >> > obtener un puntero a un valor const... cosa que ni siquiera hace
>> > >> > con el
>> > >> > nivel 4...
>> >
>> > >> > El 30 de noviembre de 2010 15:30, Nicolas Bertoa
>> > >> > <nicober...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
>> > >> >escribió:
>> >
>> > >> > > <at> RFOG:
>> >
>> > >> > > Entendiendo...  Digamos que el compilador interpreta a const char
>> > >> > > c =
>> > >> > > 'a'; como si fuera una sentencia del preprocesador y sustituye en
>> > >> > > todos lados donde esta la c por el caracter 'a', pero mantiene su
>> > >> > > lugar de memoria por si alguien como yo la necesitaba.
>> >
>> > >> > > Es correcto?
>> >
>> > >> > > On Nov 30, 11:27 am, RFOG <rafael.ontiv...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>> > >> > > > No.
>> >
>> > >> > > > Lo que ocurre es que el compilador sustituye en todos los
>> > >> > > > lugares
>> > >> que
>> > >> > > puede
>> > >> > > > c por 'a'... Lo que a mi me extraña es que luego deje la
>> > >> > > > memoria que
>> > >> > > ocupa
>> > >> > > > c, pero lo mismo se debe a que como se accede a ella hace las
>> > >> > > > dos
>> > >> cosas a
>> > >> > > la
>> > >> > > > vez...
>> >
>> > >> > > > El 30 de noviembre de 2010 15:25, Nicolas Bertoa <
>> > >> nicober... <at> gmail.com
>> > >> > > >escribió:
>> >
>> > >> > > > > Lo q no entiendo es como una misma posicion de memoria tiene
>> > >> > > > > dos
>> > >> > > > > valores distintos. O sea, donde se guarda el valor 'a' y
>> > >> > > > > donde se
>> > >> > > > > guarda el valor 'c' si teoricamente sus direcciones de
>> > >> > > > > memoria son
>> > >> las
>> > >> > > > > mismas.
>> >
>> > >> > > > > On Nov 30, 11:21 am, Billy Biset <billybi...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>> > >> > > > > wrote:
>> > >> > > > > > Diria que el uso de const no marca una posicion de memoria
>> > >> > > > > > como
>> > >> > > const,
>> > >> > > > > > sino que aplica la regla a la variable. Faltarian algunos
>> > >> > > > > > links
>> > >> en mi
>> > >> > > > > > mail :)
>> >
>> > >> > > > > --
>> > >> > > > > ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres,
>> > >> > > > > has
>> > >> > > recibido
>> > >> > > > > este mesaje por error.
>> > >> > > > > En caso de duda visita "http://groups.google.com/group/cppba"
>> >
>> > >> > > > --
>> > >> > > > Microsoft Visual C++ MVP =>http://geeks.ms/blogs/rfog
>> >
>> > >> > > --
>> > >> > >  ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has
>> > >> recibido
>> > >> > > este mesaje por error.
>> > >> > > En caso de duda visita "http://groups.google.com/group/cppba"
>> >
>> > >> > --
>> > >> > Microsoft Visual C++ MVP =>http://geeks.ms/blogs/rfog
>> >
>> > >> --
>> > >> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has
>> > >> recibido
>> > >> este mesaje por error.
>> > >> En caso de duda visita "http://groups.google.com/group/cppba"
>> >
>> > > --
>> > > Who’s got the sweetest disposition?
>> > > One guess, that’s who?
>> > > Who’d never, ever start an argument?
>> > > Who never shows a bit of temperament?
>> > > Who's never wrong but always right?
>> > > Who'd never dream of starting a fight?
>> > > Who get stuck with all the bad luck?
>> >
>> > --
>> > Who’s got the sweetest disposition?
>> > One guess, that’s who?
>> > Who’d never, ever start an argument?
>> > Who never shows a bit of temperament?
>> > Who's never wrong but always right?
>> > Who'd never dream of starting a fight?
>> > Who get stuck with all the bad luck?
>>
>> --
>> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido
>> este mesaje por error.
>> En caso de duda visita "http://groups.google.com/group/cppba"
>
>
> --
> Who’s got the sweetest disposition?
> One guess, that’s who?
> Who’d never, ever start an argument?
> Who never shows a bit of temperament?
> Who's never wrong but always right?
> Who'd never dream of starting a fight?
> Who get stuck with all the bad luck?
>
> --
> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido
> este mesaje por error.
> En caso de duda visita "http://groups.google.com/group/cppba"



--
Gabriel Viganotti

"Monday's problems are the result of Friday's fatigue"

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"
Gabriel Viganotti | 1 Dec 20:22 2010
Picon

Re: Re: Comportamiento muy raro

que  esto
    cout << c << '\n';
imprima
    c

2010/12/1 Daniel Gutson <danielgutson@...>:
> q resultado esperabas/n ?
> 2010/12/1 Gabriel Viganotti <gabrielviganotti@...>
>>
>> Dani, yo voy a saltar en defensa de Marcelo...ya que se hizo cargo :-D
>>
>> Creo que mas allá de que si/no se deba usar el C-style casting lo
>> interesante era ver porque no daba el resultado que muchos
>> (incluyendome) hubieran esperado, no? :-)
>>
>>
>>
>> 2010/11/30 Daniel Gutson <danielgutson@...>:
>> > Aprovecho para aclarar, y preguntar (especialmente para q respondan los
>> > del
>> > clericó :) )
>> > a) El orden de preferencia de cast es el siguiente:
>> >
>> > Function-syle cast (o C++-style cast), ej T(x)
>> > Static-cast
>> > Dynamic-cast
>> > reinterpret-cast
>> > reinterpret-cast + const-cast
>> > C-style cast
>> >
>> > (obviamente ya a partir del 4to hay alto nivel de oscuridad).
>> > b) PREGUNTA: en qué casos se llama al casting operator, si fue
>> > sobrecargado?
>> >
>> > 2010/11/30 Nicolas Bertoa <nicobertoa@...>
>> >>
>> >>  <at> Daniel:
>> >>
>> >> Jajaja no hay drama, no lo tome de tal forma. Ahora lo probe con
>> >> static_cast y salta el error de compilacion al querer hacer eso. Ahora
>> >> entiendo pq en los libros que he leido aconseja siempre usar ese tipo
>> >> de casteo y no el de C.
>> >>
>> >> Gracias por la aclaracion!
>> >>
>> >>
>> >> On 30 nov, 20:25, Daniel Gutson <danielgut...@...> wrote:
>> >> > (Nico, no era para vos el palo ;-) )
>> >> >
>> >> > 2010/11/30 Daniel Gutson <danielgut...@...>
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> > > AHHHHH
>> >> >
>> >> > > PERDON, puedo intervenir??? :p    (manera de decir que paren de...)
>> >> >
>> >> > > Lo que pasa es que el C-STYLE CAST es una bosta, y deshabilita el
>> >> > > const-checking.
>> >> > > Si reemplazás con static_cast<char*>(&c) vas a tener otros
>> >> > > resultados.
>> >> >
>> >> > > Conclusión #1: NO MANDAR FRUTA. ante la duda, "creo que..." :)
>> >> > > Conclusión #2: no usar c-style casts.
>> >> >
>> >> > >   Daniel.
>> >> >
>> >> > > 2010/11/30 Nicolas Bertoa <nicober...@...>
>> >> >
>> >> > > Hable con Marcelo Caro (usuario de este foro) y me mostro que
>> >> > >> colocando la sentencia volatile en
>> >> >
>> >> > >>  const volatile char c = 'a';
>> >> >
>> >> > >> el comportamiento obtenido es el deseado o sea, se imprime el
>> >> > >> valor
>> >> > >> 'c' y las mismas direcciones de memoria.
>> >> >
>> >> > >> On Nov 30, 12:10 pm, RFOG <rafael.ontiv...@...> wrote:
>> >> > >> > Sí, eso es lo que he visto en Visual C++. Supongo que si luego
>> >> > >> > no
>> >> > >> > se
>> >> > >> hace
>> >> > >> > referencia a c en ningún otro lado, el optimizador del linker (o
>> >> > >> > incluso
>> >> > >> el
>> >> > >> > del compilador) la eliminaría...
>> >> >
>> >> > >> > De todos modos considero que el compilador debería emitir un
>> >> > >> > warning al
>> >> > >> > obtener un puntero a un valor const... cosa que ni siquiera hace
>> >> > >> > con el
>> >> > >> > nivel 4...
>> >> >
>> >> > >> > El 30 de noviembre de 2010 15:30, Nicolas Bertoa
>> >> > >> > <nicober...@...
>> >> > >> >escribió:
>> >> >
>> >> > >> > >  <at> RFOG:
>> >> >
>> >> > >> > > Entendiendo...  Digamos que el compilador interpreta a const
>> >> > >> > > char
>> >> > >> > > c =
>> >> > >> > > 'a'; como si fuera una sentencia del preprocesador y sustituye
>> >> > >> > > en
>> >> > >> > > todos lados donde esta la c por el caracter 'a', pero mantiene
>> >> > >> > > su
>> >> > >> > > lugar de memoria por si alguien como yo la necesitaba.
>> >> >
>> >> > >> > > Es correcto?
>> >> >
>> >> > >> > > On Nov 30, 11:27 am, RFOG <rafael.ontiv...@...> wrote:
>> >> > >> > > > No.
>> >> >
>> >> > >> > > > Lo que ocurre es que el compilador sustituye en todos los
>> >> > >> > > > lugares
>> >> > >> que
>> >> > >> > > puede
>> >> > >> > > > c por 'a'... Lo que a mi me extraña es que luego deje la
>> >> > >> > > > memoria que
>> >> > >> > > ocupa
>> >> > >> > > > c, pero lo mismo se debe a que como se accede a ella hace
>> >> > >> > > > las
>> >> > >> > > > dos
>> >> > >> cosas a
>> >> > >> > > la
>> >> > >> > > > vez...
>> >> >
>> >> > >> > > > El 30 de noviembre de 2010 15:25, Nicolas Bertoa <
>> >> > >> nicober...@...
>> >> > >> > > >escribió:
>> >> >
>> >> > >> > > > > Lo q no entiendo es como una misma posicion de memoria
>> >> > >> > > > > tiene
>> >> > >> > > > > dos
>> >> > >> > > > > valores distintos. O sea, donde se guarda el valor 'a' y
>> >> > >> > > > > donde se
>> >> > >> > > > > guarda el valor 'c' si teoricamente sus direcciones de
>> >> > >> > > > > memoria son
>> >> > >> las
>> >> > >> > > > > mismas.
>> >> >
>> >> > >> > > > > On Nov 30, 11:21 am, Billy Biset <billybi...@...>
>> >> > >> > > > > wrote:
>> >> > >> > > > > > Diria que el uso de const no marca una posicion de
>> >> > >> > > > > > memoria
>> >> > >> > > > > > como
>> >> > >> > > const,
>> >> > >> > > > > > sino que aplica la regla a la variable. Faltarian
>> >> > >> > > > > > algunos
>> >> > >> > > > > > links
>> >> > >> en mi
>> >> > >> > > > > > mail :)
>> >> >
>> >> > >> > > > > --
>> >> > >> > > > > ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo
>> >> > >> > > > > eres,
>> >> > >> > > > > has
>> >> > >> > > recibido
>> >> > >> > > > > este mesaje por error.
>> >> > >> > > > > En caso de duda visita
>> >> > >> > > > > "http://groups.google.com/group/cppba"
>> >> >
>> >> > >> > > > --
>> >> > >> > > > Microsoft Visual C++ MVP =>http://geeks.ms/blogs/rfog
>> >> >
>> >> > >> > > --
>> >> > >> > >  ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres,
>> >> > >> > > has
>> >> > >> recibido
>> >> > >> > > este mesaje por error.
>> >> > >> > > En caso de duda visita "http://groups.google.com/group/cppba"
>> >> >
>> >> > >> > --
>> >> > >> > Microsoft Visual C++ MVP =>http://geeks.ms/blogs/rfog
>> >> >
>> >> > >> --
>> >> > >> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has
>> >> > >> recibido
>> >> > >> este mesaje por error.
>> >> > >> En caso de duda visita "http://groups.google.com/group/cppba"
>> >> >
>> >> > > --
>> >> > > Who’s got the sweetest disposition?
>> >> > > One guess, that’s who?
>> >> > > Who’d never, ever start an argument?
>> >> > > Who never shows a bit of temperament?
>> >> > > Who's never wrong but always right?
>> >> > > Who'd never dream of starting a fight?
>> >> > > Who get stuck with all the bad luck?
>> >> >
>> >> > --
>> >> > Who’s got the sweetest disposition?
>> >> > One guess, that’s who?
>> >> > Who’d never, ever start an argument?
>> >> > Who never shows a bit of temperament?
>> >> > Who's never wrong but always right?
>> >> > Who'd never dream of starting a fight?
>> >> > Who get stuck with all the bad luck?
>> >>
>> >> --
>> >> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has
>> >> recibido
>> >> este mesaje por error.
>> >> En caso de duda visita "http://groups.google.com/group/cppba"
>> >
>> >
>> > --
>> > Who’s got the sweetest disposition?
>> > One guess, that’s who?
>> > Who’d never, ever start an argument?
>> > Who never shows a bit of temperament?
>> > Who's never wrong but always right?
>> > Who'd never dream of starting a fight?
>> > Who get stuck with all the bad luck?
>> >
>> > --
>> > ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has
>> > recibido
>> > este mesaje por error.
>> > En caso de duda visita "http://groups.google.com/group/cppba"
>>
>>
>>
>> --
>> Gabriel Viganotti
>>
>> "Monday's problems are the result of Friday's fatigue"
>>
>> --
>> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido
>> este mesaje por error.
>> En caso de duda visita "http://groups.google.com/group/cppba"
>
>
> --
> Who’s got the sweetest disposition?
> One guess, that’s who?
> Who’d never, ever start an argument?
> Who never shows a bit of temperament?
> Who's never wrong but always right?
> Who'd never dream of starting a fight?
> Who get stuck with all the bad luck?
>
> --
> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido
> este mesaje por error.
> En caso de duda visita "http://groups.google.com/group/cppba"

-- 
Gabriel Viganotti

"Monday's problems are the result of Friday's fatigue"

--

-- 
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error. 
En caso de duda visita "http://groups.google.com/group/cppba"

Daniel Gutson | 2 Dec 01:14 2010
Picon

Re: Re: Comportamiento muy raro

OKOKOK, me meto mi reto en donde corresponde (y ojo, duele) y pido disculpas.

Ahí releí los comentarios.

Más allá de que esto en C++ no esté bien porque se use el C-style, explico.

1) Tienen razón en que el const char c se toma "como si fuera" un #define. Esto, si no me equivoco
(y espero no estar mandando fruta yo ahora), es un pedido del standard, en la cruzada de stroustrup contra el
preprocesador: querían garantizar que "const NATIVETYPE x = valor" sea exactamente igual que una macro,
para no darle excusas a nadie de usar macros. Por lo tanto, opino que NO es una optimización.
Pero no tengo el standard a mano, excusa para no fijarme.

2) Esto funciona porque está en el stack, y por lo tanto no es una constante física. Sin embargo,
si mueven la variable como global, van a ver que ahí la cosa cambia. Por qué? Porque ahí sí el const puede
tornarse un const físico, y por lo tanto ir a parar a una sección readonly, cosa que por lo menos en ELF ocurre.
(ya se imaginaron qué pasa si prueban ponerla como global?)

 Daniel.

On Wed, Dec 1, 2010 at 4:22 PM, Gabriel Viganotti <gabrielviganotti-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
que  esto
   cout << c << '\n';
imprima
   c


2010/12/1 Daniel Gutson <danielgutson-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>:
> q resultado esperabas/n ?
> 2010/12/1 Gabriel Viganotti <gabrielviganotti-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>>
>> Dani, yo voy a saltar en defensa de Marcelo...ya que se hizo cargo :-D
>>
>> Creo que mas allá de que si/no se deba usar el C-style casting lo
>> interesante era ver porque no daba el resultado que muchos
>> (incluyendome) hubieran esperado, no? :-)
>>
>>
>>
>> 2010/11/30 Daniel Gutson <danielgutson-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>:
>> > Aprovecho para aclarar, y preguntar (especialmente para q respondan los
>> > del
>> > clericó :) )
>> > a) El orden de preferencia de cast es el siguiente:
>> >
>> > Function-syle cast (o C++-style cast), ej T(x)
>> > Static-cast
>> > Dynamic-cast
>> > reinterpret-cast
>> > reinterpret-cast + const-cast
>> > C-style cast
>> >
>> > (obviamente ya a partir del 4to hay alto nivel de oscuridad).
>> > b) PREGUNTA: en qué casos se llama al casting operator, si fue
>> > sobrecargado?
>> >
>> > 2010/11/30 Nicolas Bertoa <nicobertoa-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>> >>
>> >> <at> Daniel:
>> >>
>> >> Jajaja no hay drama, no lo tome de tal forma. Ahora lo probe con
>> >> static_cast y salta el error de compilacion al querer hacer eso. Ahora
>> >> entiendo pq en los libros que he leido aconseja siempre usar ese tipo
>> >> de casteo y no el de C.
>> >>
>> >> Gracias por la aclaracion!
>> >>
>> >>
>> >> On 30 nov, 20:25, Daniel Gutson <danielgut...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>> >> > (Nico, no era para vos el palo ;-) )
>> >> >
>> >> > 2010/11/30 Daniel Gutson <danielgut...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> > > AHHHHH
>> >> >
>> >> > > PERDON, puedo intervenir??? :p    (manera de decir que paren de...)
>> >> >
>> >> > > Lo que pasa es que el C-STYLE CAST es una bosta, y deshabilita el
>> >> > > const-checking.
>> >> > > Si reemplazás con static_cast<char*>(&c) vas a tener otros
>> >> > > resultados.
>> >> >
>> >> > > Conclusión #1: NO MANDAR FRUTA. ante la duda, "creo que..." :)
>> >> > > Conclusión #2: no usar c-style casts.
>> >> >
>> >> > >   Daniel.
>> >> >
>> >> > > 2010/11/30 Nicolas Bertoa <nicober...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>> >> >
>> >> > > Hable con Marcelo Caro (usuario de este foro) y me mostro que
>> >> > >> colocando la sentencia volatile en
>> >> >
>> >> > >>  const volatile char c = 'a';
>> >> >
>> >> > >> el comportamiento obtenido es el deseado o sea, se imprime el
>> >> > >> valor
>> >> > >> 'c' y las mismas direcciones de memoria.
>> >> >
>> >> > >> On Nov 30, 12:10 pm, RFOG <rafael.ontiv...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>> >> > >> > Sí, eso es lo que he visto en Visual C++. Supongo que si luego
>> >> > >> > no
>> >> > >> > se
>> >> > >> hace
>> >> > >> > referencia a c en ningún otro lado, el optimizador del linker (o
>> >> > >> > incluso
>> >> > >> el
>> >> > >> > del compilador) la eliminaría...
>> >> >
>> >> > >> > De todos modos considero que el compilador debería emitir un
>> >> > >> > warning al
>> >> > >> > obtener un puntero a un valor const... cosa que ni siquiera hace
>> >> > >> > con el
>> >> > >> > nivel 4...
>> >> >
>> >> > >> > El 30 de noviembre de 2010 15:30, Nicolas Bertoa
>> >> > >> > <nicober...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
>> >> > >> >escribió:
>> >> >
>> >> > >> > > <at> RFOG:
>> >> >
>> >> > >> > > Entendiendo...  Digamos que el compilador interpreta a const
>> >> > >> > > char
>> >> > >> > > c =
>> >> > >> > > 'a'; como si fuera una sentencia del preprocesador y sustituye
>> >> > >> > > en
>> >> > >> > > todos lados donde esta la c por el caracter 'a', pero mantiene
>> >> > >> > > su
>> >> > >> > > lugar de memoria por si alguien como yo la necesitaba.
>> >> >
>> >> > >> > > Es correcto?
>> >> >
>> >> > >> > > On Nov 30, 11:27 am, RFOG <rafael.ontiv...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>> >> > >> > > > No.
>> >> >
>> >> > >> > > > Lo que ocurre es que el compilador sustituye en todos los
>> >> > >> > > > lugares
>> >> > >> que
>> >> > >> > > puede
>> >> > >> > > > c por 'a'... Lo que a mi me extraña es que luego deje la
>> >> > >> > > > memoria que
>> >> > >> > > ocupa
>> >> > >> > > > c, pero lo mismo se debe a que como se accede a ella hace
>> >> > >> > > > las
>> >> > >> > > > dos
>> >> > >> cosas a
>> >> > >> > > la
>> >> > >> > > > vez...
>> >> >
>> >> > >> > > > El 30 de noviembre de 2010 15:25, Nicolas Bertoa <
>> >> > >> nicober...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
>> >> > >> > > >escribió:
>> >> >
>> >> > >> > > > > Lo q no entiendo es como una misma posicion de memoria
>> >> > >> > > > > tiene
>> >> > >> > > > > dos
>> >> > >> > > > > valores distintos. O sea, donde se guarda el valor 'a' y
>> >> > >> > > > > donde se
>> >> > >> > > > > guarda el valor 'c' si teoricamente sus direcciones de
>> >> > >> > > > > memoria son
>> >> > >> las
>> >> > >> > > > > mismas.
>> >> >
>> >> > >> > > > > On Nov 30, 11:21 am, Billy Biset <billybi...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>> >> > >> > > > > wrote:
>> >> > >> > > > > > Diria que el uso de const no marca una posicion de
>> >> > >> > > > > > memoria
>> >> > >> > > > > > como
>> >> > >> > > const,
>> >> > >> > > > > > sino que aplica la regla a la variable. Faltarian
>> >> > >> > > > > > algunos
>> >> > >> > > > > > links
>> >> > >> en mi
>> >> > >> > > > > > mail :)
>> >> >
>> >> > >> > > > > --
>> >> > >> > > > > ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo
>> >> > >> > > > > eres,
>> >> > >> > > > > has
>> >> > >> > > recibido
>> >> > >> > > > > este mesaje por error.
>> >> > >> > > > > En caso de duda visita
>> >> > >> > > > > "http://groups.google.com/group/cppba"
>> >> >
>> >> > >> > > > --
>> >> > >> > > > Microsoft Visual C++ MVP =>http://geeks.ms/blogs/rfog
>> >> >
>> >> > >> > > --
>> >> > >> > >  ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres,
>> >> > >> > > has
>> >> > >> recibido
>> >> > >> > > este mesaje por error.
>> >> > >> > > En caso de duda visita "http://groups.google.com/group/cppba"
>> >> >
>> >> > >> > --
>> >> > >> > Microsoft Visual C++ MVP =>http://geeks.ms/blogs/rfog
>> >> >
>> >> > >> --
>> >> > >> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has
>> >> > >> recibido
>> >> > >> este mesaje por error.
>> >> > >> En caso de duda visita "http://groups.google.com/group/cppba"
>> >> >
>> >> > > --
>> >> > > Who’s got the sweetest disposition?
>> >> > > One guess, that’s who?
>> >> > > Who’d never, ever start an argument?
>> >> > > Who never shows a bit of temperament?
>> >> > > Who's never wrong but always right?
>> >> > > Who'd never dream of starting a fight?
>> >> > > Who get stuck with all the bad luck?
>> >> >
>> >> > --
>> >> > Who’s got the sweetest disposition?
>> >> > One guess, that’s who?
>> >> > Who’d never, ever start an argument?
>> >> > Who never shows a bit of temperament?
>> >> > Who's never wrong but always right?
>> >> > Who'd never dream of starting a fight?
>> >> > Who get stuck with all the bad luck?
>> >>
>> >> --
>> >> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has
>> >> recibido
>> >> este mesaje por error.
>> >> En caso de duda visita "http://groups.google.com/group/cppba"
>> >
>> >
>> > --
>> > Who’s got the sweetest disposition?
>> > One guess, that’s who?
>> > Who’d never, ever start an argument?
>> > Who never shows a bit of temperament?
>> > Who's never wrong but always right?
>> > Who'd never dream of starting a fight?
>> > Who get stuck with all the bad luck?
>> >
>> > --
>> > ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has
>> > recibido
>> > este mesaje por error.
>> > En caso de duda visita "http://groups.google.com/group/cppba"
>>
>>
>>
>> --
>> Gabriel Viganotti
>>
>> "Monday's problems are the result of Friday's fatigue"
>>
>> --
>> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido
>> este mesaje por error.
>> En caso de duda visita "http://groups.google.com/group/cppba"
>
>
> --
> Who’s got the sweetest disposition?
> One guess, that’s who?
> Who’d never, ever start an argument?
> Who never shows a bit of temperament?
> Who's never wrong but always right?
> Who'd never dream of starting a fight?
> Who get stuck with all the bad luck?
>
> --
> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido
> este mesaje por error.
> En caso de duda visita "http://groups.google.com/group/cppba"



--
Gabriel Viganotti

"Monday's problems are the result of Friday's fatigue"

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"
Rolo | 6 Dec 15:30 2010
Picon

iteradores de un arbol binario

Buenas quizas alguien tiene los iteradores de un arbol
binario ,saludos.

--

-- 
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error. 
En caso de duda visita "http://groups.google.com/group/cppba"

Edgardo Hames | 6 Dec 15:59 2010
Picon

Re: iteradores de un arbol binario

2010/12/6 Rolo <cardenas007@...>:
> Buenas quizas alguien tiene los iteradores de un arbol
> binario ,saludos.

Te referís a esto?

http://en.wikipedia.org/wiki/Depth-first_search
http://en.wikipedia.org/wiki/Breadth-first_search

Saludos,
Edgardo
-- 
The mere formulation of a problem is far more essential than its solution,
which may be merely a matter of mathematical or experimental skills.
-- Albert Einstein

--

-- 
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error. 
En caso de duda visita "http://groups.google.com/group/cppba"

Raul Pacco Cardenas | 6 Dec 16:08 2010
Picon

Re: iteradores de un arbol binario

básicamente lo que quiero es poder recorrer un árbol, que pueda moverme al siguiente nodo y al anterior . 


Saludos.

El 6 de diciembre de 2010 09:59, Edgardo Hames <ehames-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> escribió:
2010/12/6 Rolo <cardenas007-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>:
> Buenas quizas alguien tiene los iteradores de un arbol
> binario ,saludos.

Te referís a esto?

http://en.wikipedia.org/wiki/Depth-first_search
http://en.wikipedia.org/wiki/Breadth-first_search

Saludos,
Edgardo
--
The mere formulation of a problem is far more essential than its solution,
which may be merely a matter of mathematical or experimental skills.
-- Albert Einstein

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"
Daniel Gutson | 6 Dec 16:12 2010
Picon

Re: iteradores de un arbol binario

La STL no tiene nada referido a implementación de contenedores.


Para qué lo querés?

On Mon, Dec 6, 2010 at 12:08 PM, Raul Pacco Cardenas <cardenas007-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
básicamente lo que quiero es poder recorrer un árbol, que pueda moverme al siguiente nodo y al anterior . 

Saludos.

El 6 de diciembre de 2010 09:59, Edgardo Hames <ehames-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> escribió:

2010/12/6 Rolo <cardenas007-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>:
> Buenas quizas alguien tiene los iteradores de un arbol
> binario ,saludos.

Te referís a esto?

http://en.wikipedia.org/wiki/Depth-first_search
http://en.wikipedia.org/wiki/Breadth-first_search

Saludos,
Edgardo
--
The mere formulation of a problem is far more essential than its solution,
which may be merely a matter of mathematical or experimental skills.
-- Albert Einstein

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"



--
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?

--
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
En caso de duda visita "http://groups.google.com/group/cppba"
Gabriel Viganotti | 6 Dec 17:05 2010
Picon

Re: iteradores de un arbol binario

A principios de año estuve laburando con el property tree que Boost
incluyó creo hace muy poco:

http://www.boost.org/doc/libs/1_42_0/doc/html/property_tree.html

Seguramente te van a faltar cosas pero tiene varios temas ya
resueltos. Creo que está bastante piola sino querés arrancar desde
cero con un árbol.

Gabriel

On Mon, Dec 6, 2010 at 12:12 PM, Daniel Gutson
<danielgutson@...> wrote:
> La STL no tiene nada referido a implementación de contenedores.
> Para qué lo querés?
>
> On Mon, Dec 6, 2010 at 12:08 PM, Raul Pacco Cardenas <cardenas007 <at> gmail.com>
> wrote:
>>
>> básicamente lo que quiero es poder recorrer un árbol, que pueda moverme al
>> siguiente nodo y al anterior .
>> Saludos.
>>
>> El 6 de diciembre de 2010 09:59, Edgardo Hames <ehames@...>
>> escribió:
>>>
>>> 2010/12/6 Rolo <cardenas007@...>:
>>> > Buenas quizas alguien tiene los iteradores de un arbol
>>> > binario ,saludos.
>>>
>>> Te referís a esto?
>>>
>>> http://en.wikipedia.org/wiki/Depth-first_search
>>> http://en.wikipedia.org/wiki/Breadth-first_search
>>>
>>> Saludos,
>>> Edgardo
>>> --
>>> The mere formulation of a problem is far more essential than its
>>> solution,
>>> which may be merely a matter of mathematical or experimental skills.
>>> -- Albert Einstein
>>>
>>> --
>>> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido
>>> este mesaje por error.
>>> En caso de duda visita "http://groups.google.com/group/cppba"
>>
>> --
>> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido
>> este mesaje por error.
>> En caso de duda visita "http://groups.google.com/group/cppba"
>
>
> --
> Who’s got the sweetest disposition?
> One guess, that’s who?
> Who’d never, ever start an argument?
> Who never shows a bit of temperament?
> Who's never wrong but always right?
> Who'd never dream of starting a fight?
> Who get stuck with all the bad luck?
>
> --
> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido
> este mesaje por error.
> En caso de duda visita "http://groups.google.com/group/cppba"

-- 
Gabriel Viganotti

"Monday's problems are the result of Friday's fatigue"

--

-- 
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error. 
En caso de duda visita "http://groups.google.com/group/cppba"

Edgardo Hames | 6 Dec 17:16 2010
Picon

Re: iteradores de un arbol binario

2010/12/6 Raul Pacco Cardenas <cardenas007@...>:
> básicamente lo que quiero es poder recorrer un árbol, que pueda moverme al
> siguiente nodo y al anterior .

Por "siguiente nodo", supongo que te referirás a un nodo hijo (que no
necesariamente es único); y por "anterior", al padre. Por eso yo te
pasé 2 ejemplos clásicos de cómo recorrer un árbol de manera
iterativa.

También podés mirar estos ejemplos:

http://tree.phi-sci.com/
http://www.boost.org/doc/libs/1_36_0/libs/graph/doc/index.html

Saludos,
Edgardo

> Saludos.
>
> El 6 de diciembre de 2010 09:59, Edgardo Hames <ehames@...> escribió:
>>
>> 2010/12/6 Rolo <cardenas007@...>:
>> > Buenas quizas alguien tiene los iteradores de un arbol
>> > binario ,saludos.
>>
>> Te referís a esto?
>>
>> http://en.wikipedia.org/wiki/Depth-first_search
>> http://en.wikipedia.org/wiki/Breadth-first_search
>>
>> Saludos,
>> Edgardo
>> --
>> The mere formulation of a problem is far more essential than its solution,
>> which may be merely a matter of mathematical or experimental skills.
>> -- Albert Einstein
>>
>> --
>> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido
>> este mesaje por error.
>> En caso de duda visita "http://groups.google.com/group/cppba"
>
> --
> ¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido
> este mesaje por error.
> En caso de duda visita "http://groups.google.com/group/cppba"

-- 
The mere formulation of a problem is far more essential than its solution,
which may be merely a matter of mathematical or experimental skills.
-- Albert Einstein

--

-- 
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error. 
En caso de duda visita "http://groups.google.com/group/cppba"


Gmane