Alejandro Santos | 14 May 2013 04:25
Picon
Gravatar

The C++ Programming Language Fourth Edition is now shipping

http://isocpp.org/blog/2013/05/tcpp4e-now-shipping

--
Alejandro Santos

-- 
--

-- 
¿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"
--- 
Has recibido este mensaje porque estás suscrito al grupo "CyC++ Buenos Aires" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo
electrónico a cppba+unsubscribe <at> googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.

Hernán Leoni | 25 Apr 2013 18:43
Picon

acerca de boost::bind y como resolver cuando hay funciones sobrecargadas


hola gente,

una consultita acerca del bind de boost y como resolver cuando hay funciones sobrecargadas

tengo este escenario donde quiero recorrer un rango iterable y con cada item hacer algo que devuelve un string, luego meter ese string en un vector
acá el código


void foo() {
....

std::vector<std::string> result;

std::for_each(_someiterable->begin(), _someiterable->end(),
    boost::bind(&std::vector<std::string>::push_back, &result, boost::bind(...otro binding que devuelve un std::sting...)));

....
}

esto en principio andaba hasta que le puse al compilador el flag -std=c++0x
una vez puesto ese flag el compilador no sabe si bindear contra el push_back(const string &) o el push_back(string &)
con lo cual hice lo siguiente



void push_back(std::vector<std::string> & v, std::string const & s) {
    v.push_back(s);
}


void foo() {
....

std::vector<std::string> result;
std::for_each(someiterable->begin(), _someiterable->end(),
    boost::bind(&push_back, std::ref(result), boost::bind(&t_applications_registry_entry::app_id, _1)));
....
}

esto compila sin problemas, pero un embole tener que escribir la funcion extra

la otra opción era especificar bien en el bind  que funcion quería yo, pero si tengo que hacerlo se vuelve ilegible y termino escribiendo más que si hago el for tradicional.

mi consulta es si existe forma sencilla de desambiguar en el bind, o bien si existen utilidades como la funcion que yo hice para evitar reescribirlas

gracias

hernan

--
--
¿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"
---
Has recibido este mensaje porque estás suscrito al grupo "CyC++ Buenos Aires" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a cppba+unsubscribe <at> googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 
Enrique Nieloud | 22 Apr 2013 17:04
Picon

Hecho en Argentina

Gente

Estoy realmente contento en comentarles que acabo de leer que el
"boost::optional" de Fernando pasó a "std::optional". Sí señores fue
incorporado al estándard.

slds,

- Enrique

-- 
--

-- 
¿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"
--- 
Has recibido este mensaje porque estás suscrito al grupo "CyC++ Buenos Aires" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo
electrónico a cppba+unsubscribe <at> googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.

Daniel Gutson | 16 Apr 2013 18:20
Picon

comentario de la vida (de gcc)

1) A mí me gustan los editores de texto, y
2) soy daltónico
3) pero.....

estos tipos se zarparon un poco... recién a esta altura de la vida....


   :)



--
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"
---
Has recibido este mensaje porque estás suscrito al grupo "CyC++ Buenos Aires" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a cppba+unsubscribe <at> googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 
Hernán Leoni | 12 Apr 2013 14:44
Picon

rvalue references

Hola gente !!!

Estaba leyendo un poco de las rvalue references, es increíble como pude ser este tema que un segundo después de haber entendido se enrieda todo de nuevo.

Lo último que estuve mirando es acá
http://thbecker.net/articles/rvalue_references/section_01.html

lo que estoy tratando, además de terminar de incorporar el concepto, es de encontrar cuales son las buenas prácticas para aprovechar esto.

Se puede decir que con crear constructores y operadores de asignación con move semantics es suficiente?
Tiene realmente sentido comenzar a usar rvalue references en otras funciones? Tengo que terminar de ver la sección del perfect forwarding que parece tener que ver con esto, el ejemplo del factory es claro, pero veo que la solución involucra bastante código extra y no muy facil de leer. Se podría decir que en caso de este tipo de funciones solo conviene ponerse a ver esto cuando es una funciona llamada miles de veces por segundo?

Gracias,
Un saludo

Hernán

--
--
¿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"
---
Has recibido este mensaje porque estás suscrito al grupo "CyC++ Buenos Aires" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a cppba+unsubscribe <at> googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 
Edgardo Hames | 7 Apr 2013 01:30
Picon
Gravatar

Papers sobre C++14

Les paso unos links con comentarios sobre los features que se están discutiendo para el próximo estándar de C++


Saludos,
Edgardo

--
“I know that you believe you understand what you think I said, but I'm not sure you realize that what you heard is not what I meant.” -- Robert McCloskey

--
--
¿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"
---
Has recibido este mensaje porque estás suscrito al grupo "CyC++ Buenos Aires" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a cppba+unsubscribe <at> googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 
Allander Anjos | 4 Apr 2013 19:35
Picon

crear software

ALGUEM PODE ME AJUDAR A RESOLVER ESSA QUESTÃO??

Escreva um programa em C que receba um número inteiro x que resolva a
seguinte expressão: 3x² + 4x³ - 9. Se o resultado for maior ou igual a
0 imprima o resultado na saída padrão, se não, imprima “programar é
legal”.

-- 
--

-- 
¿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"
--- 
Has recibido este mensaje porque estás suscrito al grupo "CyC++ Buenos Aires" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo
electrónico a cppba+unsubscribe <at> googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.

Daniel Gutson | 29 Mar 2013 06:43
Picon

[cppba] "cafés suspendidos" (o "pendientes"), iteradores, y la consecuencia de que los bueyes no tengan GPS

Esta nota me gustó tanto que busqué publicarla acá de alguna manera,

ya que les escribí a Starbucks Argentina y Subway Argentina para que la implementen.
a ver si inspiro a alguien a hacer algo parecido.

Por supuesto, este es un post solidario disfrazado de C++, pero con un disfraz interesante.

Es lo mismo en términos de performance, el pre-incremento y el post-incremento?
Plus: en C++11 (no vale considerar el range-based for) ?

Por ejemplo: uso un iterador en un for, da lo mismo que haga

for ( vector<pepino>::iterator it = pepinos.begin(); it != pepinos.end(); ++it )
    ...

que hacer lo mismo pero con it++  ?

(obviamente los que lo sepan dejen espacio para los que no lo saben así se arma discusión)

  Daniel.

pd: (cuál es la consecuencia mencionada en el asunto?)


--
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"
---
Has recibido este mensaje porque estás suscrito al grupo "CyC++ Buenos Aires" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a cppba+unsubscribe <at> googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 
Javi Ortiz | 27 Mar 2013 18:04
Picon

Bloque de memoria read-only compartido entre hilos

Que tal lista, les escribo para ver si a alguno se le ocurre cómo encarar el problema que estoy teniendo:


Estoy utilizando OpenMP en un programa escrito en C y compilado con GCC 4.7.2. Tengo un array de punteros a bloques de memoria de la siguiente forma:

float ** B = malloc (cantBloques * sizeof(float *);

for(i 0->cantBloques) B[i] = malloc (tamañoBloque * sizeof(float));

Estoy realizando un Thread Pool con muchos hilos que ejecutan tareas sobre estos bloques y algunas de esas funciones reciben de parámetro bloques que no van a modificar internamente.

El problema que tengo es que cuando me divido en OMP, dos hilos que utilizan el bloque pero solámente para leerlo es como que se me bloqueasen porque la ejecución se vuelve muy lenta (de hecho es como que uno espera hasta que el otro lo libera y recién ahí comienza su ejecución). Las funciones provienen de la librería ACML y no tienen el modificador const en la declaración así que no hay forma de que el compilador / programa se de cuenta de que no vamos a modificar el bloque en la llamada por lo que cada hilo debe 'tomar' una copia e invalidar a las demás que puedan tener los otros hilos.

Probé haciendole una copia local a cada hilo del bloque con memcpy pero tengo el mismo resultado... Quizás porque cuando entra a la región paralela, el hilo guarda el bloque paralelo en el stack del hilo y dps no lo libera hasta que sale de la región...

La pregunta en concreto es: Hay alguna manera de poder decir programáticamente "No voy a modificar este bloque, no invalides las demás copias"?

Yo tengo resuelta las dependencias de datos mediante una tabla aparte así que estoy 98% seguro de que no voy a tener el problema de que alguien escriba o lea antes de tiempo así que podria desligarme de la coherencia utilizando los mecanismos de OMP o el que los esté manejando actualmente.

A alguien se le ocurre por dónde podría encarar esto?

Desde ya gracias y disculpen si algo no se entiende!
Saludos, Javier

--
--
¿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"
---
Has recibido este mensaje porque estás suscrito al grupo "CyC++ Buenos Aires" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a cppba+unsubscribe <at> googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 
Allander Anjos | 25 Mar 2013 13:41
Picon

Redondeo

Chicos, estoy haciendo un colegio, el programa usando DEV C + +, y
necesito una cuenta utilizando round 'obligatoria' <,>, ==, =!, Y no
puedo hacer este trabajo, alguien puede ayudarme? Es algo urgente ...

-- 
--

-- 
¿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"
--- 
Has recibido este mensaje porque estás suscrito al grupo "CyC++ Buenos Aires" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo
electrónico a cppba+unsubscribe <at> googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.

Daniel Gutson | 7 Mar 2013 03:13
Picon

Re: flotadores



2013/3/6 Pablo Ybalo <pybalo-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>

Solo para ir un poco a contracorriente, :-)  me gustaria discutir los beneficios de una promoción a double.

Alguien sabe si en el caso de que los operandos sean todos float, los resultados intermedios esta estipulado (por estandar o algo así) que tambien sean float? Podria ser que dos multiplicaciones acumulen suficiente error como para que se note la diferencia? Y si fueran 7 multiplicaciones?

Esto depende de la plataforma.
Hay algunos micros de ARM que no tienen implementación por hardware de punto flotante, sino que las librerías implementan un Software-FPU.
También jode acá el tema de andar convirtiendo de un tipo de dato a otro. O se labura todo en floats (más allá de lo que haga el compilador con las instrucciones de assembly generadas) o se labura todo en doubles, pero hacer un promotion y después un demotion es muy caro.

En IA32 pasa algo muy gracioso y es que los floats se tratan por separado que los doubles (en el micro), tanto es así que las extensiones MMX se superponen físicamente con el soporte de floats, y por lo tanto para cambiar el modo del micro hay que tener un cuidado especial y usar una instrucción (instrucción emms):

del manual de IA32:



 

Mis 2.0f centavos,

--Pablo

El mar 5, 2013 9:25 a.m., "Fernando Cacciola" <fernando.cacciola-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> escribió:

2013/3/5 Juan Manuel Ollé <juanmanuelolle-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>:
> Sera el problema en la democion de 3.14159 a float?
> es decir
>
> (3.14159F - 3.14159) != 0
>
> ?
>
Nope, porque ese es un tema de precisión y damos por sentado que no se
consideró relevante, de lo contrario no sería 3.14159, al que le
faltan muchos dígitos.

Una pista: al función area que se escribió tiene external linkage.
¿Qué pasa con eso?



--
Fernando Cacciola
SciSoft Consulting, Founder
http://www.scisoft-consulting.com

--
--
¿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"
---
Has recibido este mensaje porque estás suscrito al grupo "CyC++ Buenos Aires" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a cppba+unsubscribe <at> googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.


--
--
¿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"
---
Has recibido este mensaje porque estás suscrito al grupo "CyC++ Buenos Aires" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a cppba+unsubscribe <at> googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 



--
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"
---
Has recibido este mensaje porque estás suscrito al grupo "CyC++ Buenos Aires" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a cppba+unsubscribe <at> googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 

Gmane