<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>BLOG C++</title>
	<atom:link href="http://www.zimbrao.com/cpp/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.zimbrao.com/cpp</link>
	<description>O BLOG do Zimbrão sobre a linguagem de programação C++!</description>
	<lastBuildDate>Fri, 16 Jul 2010 11:30:30 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Concepts e templates condicionais</title>
		<link>http://www.zimbrao.com/cpp/?p=425</link>
		<comments>http://www.zimbrao.com/cpp/?p=425#comments</comments>
		<pubDate>Thu, 15 Jul 2010 19:43:27 +0000</pubDate>
		<dc:creator>Zimbrão</dc:creator>
				<category><![CDATA[Metaprogramação]]></category>
		<category><![CDATA[Templates]]></category>
		<category><![CDATA[Tips&Tricks]]></category>
		<category><![CDATA[Técnicas de programação]]></category>

		<guid isPermaLink="false">http://www.zimbrao.com/cpp/?p=425</guid>
		<description><![CDATA[Concepts
O comitê de padronização do C++ox decidiu excluir concepts da proposta de evolução corrente da linguagem. Dessa forma uma importante ferramenta foi deixada de lado.
Na proposta discutida, concepts seria uma forma de garantir que determinado parâmetro de uma template implementa métodos específicos (obedecendo a um padrão) ou possui determinados tipos. Enfim, uma forma de garantir que [...]]]></description>
		<wfw:commentRss>http://www.zimbrao.com/cpp/?feed=rss2&amp;p=425</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>typenames e templates</title>
		<link>http://www.zimbrao.com/cpp/?p=411</link>
		<comments>http://www.zimbrao.com/cpp/?p=411#comments</comments>
		<pubDate>Mon, 07 Jun 2010 13:24:24 +0000</pubDate>
		<dc:creator>Zimbrão</dc:creator>
				<category><![CDATA[C++ básico]]></category>
		<category><![CDATA[Templates]]></category>

		<guid isPermaLink="false">http://www.zimbrao.com/cpp/?p=411</guid>
		<description><![CDATA[Manipulação de tipos em C++
Há uma certa dificuldade para os programadores iniciantes na área de templates que se aventuram a manipular tipos. A primeira delas é quanto ao uso da palavra reservada typename. Essa palavra deve ser utilizada para informar ao compilador que o nome que vem em seguida é um tipo, e não um [...]]]></description>
		<wfw:commentRss>http://www.zimbrao.com/cpp/?feed=rss2&amp;p=411</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Namespaces: colocando cada coisa em seu lugar</title>
		<link>http://www.zimbrao.com/cpp/?p=391</link>
		<comments>http://www.zimbrao.com/cpp/?p=391#comments</comments>
		<pubDate>Tue, 02 Mar 2010 23:22:55 +0000</pubDate>
		<dc:creator>Zimbrão</dc:creator>
				<category><![CDATA[C++ básico]]></category>
		<category><![CDATA[Estilos de programação]]></category>
		<category><![CDATA[Sintaxe]]></category>

		<guid isPermaLink="false">http://www.zimbrao.com/cpp/?p=391</guid>
		<description><![CDATA[Evitando conflitos de nomes
namespace é uma palavra reservada do C++ que implementa um mecanismo capaz de expressar agrupamento lógico. Em outras palavras, se um conjunto de declarações estão logicamente associadas de acordo com algum critério, elas podem ser colocadas juntas no mesmo namespace para expressar este fato. Um namespace também pode ser chamado de um [...]]]></description>
		<wfw:commentRss>http://www.zimbrao.com/cpp/?feed=rss2&amp;p=391</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>O mistério do sizeof – parte 3</title>
		<link>http://www.zimbrao.com/cpp/?p=383</link>
		<comments>http://www.zimbrao.com/cpp/?p=383#comments</comments>
		<pubDate>Wed, 16 Dec 2009 14:43:01 +0000</pubDate>
		<dc:creator>Zimbrão</dc:creator>
				<category><![CDATA[C++ básico]]></category>

		<guid isPermaLink="false">http://www.zimbrao.com/cpp/?p=383</guid>
		<description><![CDATA[Código Fonte:

#include &#60;cstdlib&#62;
#include &#60;iostream&#62;

using namespace std;

struct A {
  void funcaoA() {}
};

struct B {
  void funcaoB() {}
};

struct C {
  void funcaoC() {}
};

struct ABC1 {
  A a;
  B b;
  C c;
};

struct ABC2: public A, public B, public C {
};

int main(int argc, char *argv[])
{
  cout &#60;&#60; &#34;sizeof( A ): &#34; &#60;&#60; [...]]]></description>
		<wfw:commentRss>http://www.zimbrao.com/cpp/?feed=rss2&amp;p=383</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gerência de memória lenta em C++? Redefinido os operadores new e delete</title>
		<link>http://www.zimbrao.com/cpp/?p=367</link>
		<comments>http://www.zimbrao.com/cpp/?p=367#comments</comments>
		<pubDate>Tue, 01 Dec 2009 23:11:51 +0000</pubDate>
		<dc:creator>Zimbrão</dc:creator>
				<category><![CDATA[Bibliotecas]]></category>
		<category><![CDATA[C++ básico]]></category>
		<category><![CDATA[Implementação do C++]]></category>
		<category><![CDATA[Tips&Tricks]]></category>

		<guid isPermaLink="false">http://www.zimbrao.com/cpp/?p=367</guid>
		<description><![CDATA[Programa lento? Já viu se é a gerência de memória?
Redefinindo os operadores new e delete
É fato conhecido entre os programadores C++ que a gerência de memória implementada na biblioteca padrão do C/C++  é ineficiente para a alocação/liberação de muitos (mas muuuuuitos mesmo!) blocos de memória de tamanhos distintos. Programas que alocam e liberam objetos [...]]]></description>
		<wfw:commentRss>http://www.zimbrao.com/cpp/?feed=rss2&amp;p=367</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Lambda Calculus – Parte 2</title>
		<link>http://www.zimbrao.com/cpp/?p=345</link>
		<comments>http://www.zimbrao.com/cpp/?p=345#comments</comments>
		<pubDate>Wed, 25 Nov 2009 02:47:14 +0000</pubDate>
		<dc:creator>Zimbrão</dc:creator>
				<category><![CDATA[EDSL]]></category>
		<category><![CDATA[Extensões funcionais]]></category>
		<category><![CDATA[Técnicas de programação]]></category>

		<guid isPermaLink="false">http://www.zimbrao.com/cpp/?p=345</guid>
		<description><![CDATA[Expressões Lambda
Para criarmos uma expressão que retorne um functor iremos usar templates. Para isso precisaremos redefinir todos os operadores &#8211; aritméticos, lógicos, relacionais etc. Por exemplo, para podermos escrever uma expressão &#8220;2*x + 1&#8221; precisamos redefinir &#8220;*&#8221; e &#8220;+&#8221;. No entanto, embora possamos redefinir &#8220;*&#8221; para Var e int, o operador &#8220;+&#8221; precisa ser redefinido [...]]]></description>
		<wfw:commentRss>http://www.zimbrao.com/cpp/?feed=rss2&amp;p=345</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lambda Calculus &#8211; Parte 1</title>
		<link>http://www.zimbrao.com/cpp/?p=327</link>
		<comments>http://www.zimbrao.com/cpp/?p=327#comments</comments>
		<pubDate>Thu, 05 Nov 2009 02:53:16 +0000</pubDate>
		<dc:creator>Zimbrão</dc:creator>
				<category><![CDATA[EDSL]]></category>
		<category><![CDATA[Extensões funcionais]]></category>
		<category><![CDATA[Técnicas de programação]]></category>

		<guid isPermaLink="false">http://www.zimbrao.com/cpp/?p=327</guid>
		<description><![CDATA[Criando funções on-the-fly
Expressões lambda e cálculo lambda são abstrações muito utilizadas em teoria da computação. E são uma ótima forma de se definir funções on-the-fly, ou seja, no meio do código. Aqui vou mostrar uma pequena introdução sobre como fazer isso em C++, e em outros posts irei aperfeiçoar a idéia. Na biblioteca Boost existe [...]]]></description>
		<wfw:commentRss>http://www.zimbrao.com/cpp/?feed=rss2&amp;p=327</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como escrever a definição de uma template interna a uma classe template fora dessa classe</title>
		<link>http://www.zimbrao.com/cpp/?p=318</link>
		<comments>http://www.zimbrao.com/cpp/?p=318#comments</comments>
		<pubDate>Sun, 25 Oct 2009 14:06:14 +0000</pubDate>
		<dc:creator>Zimbrão</dc:creator>
				<category><![CDATA[Sintaxe]]></category>
		<category><![CDATA[Templates]]></category>

		<guid isPermaLink="false">http://www.zimbrao.com/cpp/?p=318</guid>
		<description><![CDATA[Adiando a definição de uma template interna a uma classe template
Às vezes devido às dependências do código precisamos adiar a definição de uma template até um determinado ponto do programa fonte &#8211; por exemplo se no código dessa template for necessário uma declaração feita mais a frente. Outro motivo seria simplesmente manter a declaração da [...]]]></description>
		<wfw:commentRss>http://www.zimbrao.com/cpp/?feed=rss2&amp;p=318</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Map heterogêneo</title>
		<link>http://www.zimbrao.com/cpp/?p=291</link>
		<comments>http://www.zimbrao.com/cpp/?p=291#comments</comments>
		<pubDate>Wed, 21 Oct 2009 03:24:27 +0000</pubDate>
		<dc:creator>Zimbrão</dc:creator>
				<category><![CDATA[Tips&Tricks]]></category>

		<guid isPermaLink="false">http://www.zimbrao.com/cpp/?p=291</guid>
		<description><![CDATA[Soluções simples quase sempre são as melhores
Outro dia estava com um problema onde precisa de um map que pudesse ser indexado por mais de um tipo de dado diferente. Chamei isso de map heterogêneo.
Pra quem não sabe, a template map da stl recebe dois tipos de dados e faz um dicionário. A  hash_map faz [...]]]></description>
		<wfw:commentRss>http://www.zimbrao.com/cpp/?feed=rss2&amp;p=291</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>A volta por cima: Fibonacci em C++ em 0.01 segundo</title>
		<link>http://www.zimbrao.com/cpp/?p=287</link>
		<comments>http://www.zimbrao.com/cpp/?p=287#comments</comments>
		<pubDate>Sat, 17 Oct 2009 14:58:09 +0000</pubDate>
		<dc:creator>Zimbrão</dc:creator>
				<category><![CDATA[C++ básico]]></category>
		<category><![CDATA[Metaprogramação]]></category>

		<guid isPermaLink="false">http://www.zimbrao.com/cpp/?p=287</guid>
		<description><![CDATA[Esse é o verdadeiro Fibonacci em C++&#8230;
Lógico que no post anterior sobre o desempenho do Java o objetivo não era calcular Fibonacci, mas mostrar que em chamadas recursivas o otimizador do Java leva a melhor. Uma implementação de Fibonacci em C++ usando este algoritmo recursivo,  sem passar para outros algoritmos mais óbvios como manter os [...]]]></description>
		<wfw:commentRss>http://www.zimbrao.com/cpp/?feed=rss2&amp;p=287</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
