<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4706877598113916491</id><updated>2012-01-26T11:32:07.085+04:00</updated><category term='intype'/><category term='firefox'/><category term='editor'/><category term='tips'/><category term='books'/><category term='locale'/><category term='boost'/><category term='std'/><category term='textmate'/><category term='cpp'/><category term='template'/><category term='c++'/><category term='corba'/><category term='stl'/><title type='text'>C++ maniac</title><subtitle type='html'>C++, STL, boost, corba, templates, metaprogramming</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://cppmaniac.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4706877598113916491/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://cppmaniac.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>maniac</name><uri>http://www.blogger.com/profile/05634391009211580305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4706877598113916491.post-1148950237555073537</id><published>2007-09-07T17:50:00.000+04:00</published><updated>2007-09-07T18:28:30.901+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='corba'/><category scheme='http://www.blogger.com/atom/ns#' term='cpp'/><title type='text'>The Rise and Fall of CORBA</title><content type='html'>&lt;a href="http://acmqueue.com/modules.php?name=Content&amp;pa=showpage&amp;amp;pid=396"&gt;The Rise and Fall of CORBA&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-2604083054140671";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_type = "text_image";
//2007-03-28: cppmaniac.blogspot.com
google_ad_channel = "4296991405";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4706877598113916491-1148950237555073537?l=cppmaniac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cppmaniac.blogspot.com/feeds/1148950237555073537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4706877598113916491&amp;postID=1148950237555073537' title='98 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4706877598113916491/posts/default/1148950237555073537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4706877598113916491/posts/default/1148950237555073537'/><link rel='alternate' type='text/html' href='http://cppmaniac.blogspot.com/2007/09/rise-and-fall-of-corba.html' title='The Rise and Fall of CORBA'/><author><name>maniac</name><uri>http://www.blogger.com/profile/05634391009211580305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>98</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4706877598113916491.post-6808238014733934487</id><published>2007-08-01T12:11:00.000+04:00</published><updated>2007-08-01T12:15:08.013+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><title type='text'>Fixing the Firefox  memory leak</title><content type='html'>&lt;blockquote&gt;in case you didnt know Firefox has a small memory leakage problems that can cause your pc to freeze up. basically what happens is when you minimize Firefox it stops consuming memory, however when you maximize it again the memory usage will increase, sometimes even doubling. fortunately, there is a small fix that you can implement.&lt;br /&gt;heres what you do:&lt;br /&gt;&lt;br /&gt;1. Open Firefox and go to the Address Bar. Type in about:config and then press Enter.&lt;br /&gt;2. Right Click in the page and select New -&gt; Boolean.&lt;br /&gt;3. In the box that pops up enter config.trim_on_minimize. Press Enter.&lt;br /&gt;4. Now select True and then press Enter.&lt;br /&gt;5. Restart Firefox.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.pctipsbox.com/fixing-the-firefox-memory-leak/"&gt;via&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-2604083054140671";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_type = "text_image";
//2007-03-28: cppmaniac.blogspot.com
google_ad_channel = "4296991405";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4706877598113916491-6808238014733934487?l=cppmaniac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cppmaniac.blogspot.com/feeds/6808238014733934487/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4706877598113916491&amp;postID=6808238014733934487' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4706877598113916491/posts/default/6808238014733934487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4706877598113916491/posts/default/6808238014733934487'/><link rel='alternate' type='text/html' href='http://cppmaniac.blogspot.com/2007/08/fixing-firefox-memory-leak.html' title='Fixing the Firefox  memory leak'/><author><name>maniac</name><uri>http://www.blogger.com/profile/05634391009211580305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4706877598113916491.post-3080529484709639101</id><published>2007-03-30T17:21:00.000+04:00</published><updated>2007-03-30T17:22:55.187+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='std'/><category scheme='http://www.blogger.com/atom/ns#' term='cpp'/><title type='text'>Eric Niebler @ NWCPP: Text Processing with Boost</title><content type='html'>Eric Niebler - Text Processing with Boost February 2007 meeting of the Northwest C++ Users Group.&lt;br /&gt;&lt;blockquote&gt;The abysmal support in the C and C++ ... all » standard libraries for string handling has driven many programmers to other languages like Perl and Python. Boost aims to reverse that trend. Libraries such as Boost.Lexical_cast, Boost.String_algo, Boost.Regex, Boost.Xpressive and Boost.Spirit are invaluable tools for slicing and dicing strings. If your task is as simple as turning an integer into a string, or as complicated as developing a parser generator for a new scripting language, Boost has a library that can help. In addition to covering all the afore mentioned libraries from a user's perspective, we'll also look at how Boost can be used to get more out of the standard IOstreams, and discover some hidden gems in Boost for dealing with Unicode.&lt;/blockquote&gt;&lt;br /&gt;&lt;a href="http://video.google.com/videoplay?docid=3723782552647089226"&gt;video here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-2604083054140671";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_type = "text_image";
//2007-03-28: cppmaniac.blogspot.com
google_ad_channel = "4296991405";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4706877598113916491-3080529484709639101?l=cppmaniac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cppmaniac.blogspot.com/feeds/3080529484709639101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4706877598113916491&amp;postID=3080529484709639101' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4706877598113916491/posts/default/3080529484709639101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4706877598113916491/posts/default/3080529484709639101'/><link rel='alternate' type='text/html' href='http://cppmaniac.blogspot.com/2007/03/eric-niebler-nwcpp-text-processing-with.html' title='Eric Niebler @ NWCPP: Text Processing with Boost'/><author><name>maniac</name><uri>http://www.blogger.com/profile/05634391009211580305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4706877598113916491.post-1226504772161381448</id><published>2007-03-30T17:16:00.000+04:00</published><updated>2007-03-30T17:19:30.052+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='std'/><category scheme='http://www.blogger.com/atom/ns#' term='cpp'/><title type='text'>Concepts Extending C++ Templates For Generic Programming</title><content type='html'>&lt;blockquote&gt;Concepts are a major addition to C++0x that make templates more robust, more powerful,  ... all » and easier to write and use. At their most basic level, concepts provide a type system for templates. Using concepts, the C++ compiler is able to detect errors in the definition and use of templates before they are instantiated. One immediately obvious benefit of this separate type-checking capability is a dramatic improvement in error messages resulting from improper use of templates. Look a little deeper and we find that concepts support an entirely new programming paradigm, Generic Programming, enabling the construction of a new breed of generic libraries that provide better extensibility, composability, and usability than what is possible with today's C++.&lt;br /&gt;&lt;br /&gt;This talk will provide an overview of the new features introduced by concepts and how they will benefit C++ programmers. We will see how concepts can be used to express the core components of the C++ Standard (Template) Library, and explore some of the new capabilities that concepts bring to the C++ language.&lt;/blockquote&gt;&lt;br /&gt;&lt;a href="http://video.google.com/videoplay?docid=-1790714981047186825"&gt;video here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-2604083054140671";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_type = "text_image";
//2007-03-28: cppmaniac.blogspot.com
google_ad_channel = "4296991405";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4706877598113916491-1226504772161381448?l=cppmaniac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cppmaniac.blogspot.com/feeds/1226504772161381448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4706877598113916491&amp;postID=1226504772161381448' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4706877598113916491/posts/default/1226504772161381448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4706877598113916491/posts/default/1226504772161381448'/><link rel='alternate' type='text/html' href='http://cppmaniac.blogspot.com/2007/03/concepts-extending-c-templates-for.html' title='Concepts Extending C++ Templates For Generic Programming'/><author><name>maniac</name><uri>http://www.blogger.com/profile/05634391009211580305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4706877598113916491.post-2408841898198354934</id><published>2007-03-30T16:23:00.000+04:00</published><updated>2007-03-30T16:24:24.378+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='std'/><category scheme='http://www.blogger.com/atom/ns#' term='cpp'/><title type='text'>New Features in the Next C++ Standard</title><content type='html'>&lt;a href="http://video.google.com/videoplay?docid=2768126766555555011"&gt;New Features in the Next C++ Standard&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;The upcoming C++ standard will have many new features, several major and many minor. The  ... all » major features are concurrency, template concepts, move semantics, generalized constant expressions, automatic variable typing, and garbage collection. We will present an overview of the major features and breeze through a list of other features, commenting on their likeliness to make the standard.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-2604083054140671";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_type = "text_image";
//2007-03-28: cppmaniac.blogspot.com
google_ad_channel = "4296991405";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4706877598113916491-2408841898198354934?l=cppmaniac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cppmaniac.blogspot.com/feeds/2408841898198354934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4706877598113916491&amp;postID=2408841898198354934' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4706877598113916491/posts/default/2408841898198354934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4706877598113916491/posts/default/2408841898198354934'/><link rel='alternate' type='text/html' href='http://cppmaniac.blogspot.com/2007/03/new-features-in-next-c-standard.html' title='New Features in the Next C++ Standard'/><author><name>maniac</name><uri>http://www.blogger.com/profile/05634391009211580305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4706877598113916491.post-7384073960981625893</id><published>2007-03-16T17:58:00.000+03:00</published><updated>2007-03-16T18:11:58.596+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='corba'/><category scheme='http://www.blogger.com/atom/ns#' term='stl'/><category scheme='http://www.blogger.com/atom/ns#' term='cpp'/><title type='text'>О вреде стандартов</title><content type='html'>Есть замечательный стандарт CORBA, в котором замечательно определен, в числе прочих, маппинг в C++. И всебы хорошо, вот только писАлся он без учета такой мелочи как STL.&lt;br /&gt;Теперь это аукается необходимостью постоянной конвертации из корбовских типов в стл-ные и обратно, что конечно не добавляет программам ни скорости ни стабильности.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-2604083054140671";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_type = "text_image";
//2007-03-28: cppmaniac.blogspot.com
google_ad_channel = "4296991405";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4706877598113916491-7384073960981625893?l=cppmaniac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cppmaniac.blogspot.com/feeds/7384073960981625893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4706877598113916491&amp;postID=7384073960981625893' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4706877598113916491/posts/default/7384073960981625893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4706877598113916491/posts/default/7384073960981625893'/><link rel='alternate' type='text/html' href='http://cppmaniac.blogspot.com/2007/03/blog-post_16.html' title='О вреде стандартов'/><author><name>maniac</name><uri>http://www.blogger.com/profile/05634391009211580305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4706877598113916491.post-8577848399019228670</id><published>2007-03-16T17:46:00.001+03:00</published><updated>2007-07-19T16:24:12.069+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='std'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='locale'/><title type='text'>tip</title><content type='html'>&lt;code&gt;&lt;br /&gt;locale loc("russian_Russia.1251");&lt;br /&gt;locale::global(loc);&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-2604083054140671";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_type = "text_image";
//2007-03-28: cppmaniac.blogspot.com
google_ad_channel = "4296991405";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4706877598113916491-8577848399019228670?l=cppmaniac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cppmaniac.blogspot.com/feeds/8577848399019228670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4706877598113916491&amp;postID=8577848399019228670' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4706877598113916491/posts/default/8577848399019228670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4706877598113916491/posts/default/8577848399019228670'/><link rel='alternate' type='text/html' href='http://cppmaniac.blogspot.com/2007/03/tip.html' title='tip'/><author><name>maniac</name><uri>http://www.blogger.com/profile/05634391009211580305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4706877598113916491.post-3927727091449627673</id><published>2007-03-16T10:30:00.000+03:00</published><updated>2007-03-16T10:36:42.157+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='books'/><title type='text'>Из предисловия</title><content type='html'>&lt;a href="http://www.amazon.com/Modern-C%2B%2B-Design-Programming-Patterns/dp/0201704315/ref=pd_bbs_sr_1/103-1236836-1696611?ie=UTF8&amp;s=books&amp;amp;qid=1173947536&amp;amp;sr=8-1"&gt;этой книги&lt;/a&gt;: "Если прочитав главу о type list вы не упали со стула, значит вы сидели на полу".&lt;br /&gt;Великолепно.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-2604083054140671";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_type = "text_image";
//2007-03-28: cppmaniac.blogspot.com
google_ad_channel = "4296991405";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4706877598113916491-3927727091449627673?l=cppmaniac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cppmaniac.blogspot.com/feeds/3927727091449627673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4706877598113916491&amp;postID=3927727091449627673' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4706877598113916491/posts/default/3927727091449627673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4706877598113916491/posts/default/3927727091449627673'/><link rel='alternate' type='text/html' href='http://cppmaniac.blogspot.com/2007/03/blog-post.html' title='Из предисловия'/><author><name>maniac</name><uri>http://www.blogger.com/profile/05634391009211580305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4706877598113916491.post-7029463352362034366</id><published>2007-03-15T13:13:00.000+03:00</published><updated>2007-03-30T16:33:18.811+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='intype'/><category scheme='http://www.blogger.com/atom/ns#' term='editor'/><category scheme='http://www.blogger.com/atom/ns#' term='textmate'/><title type='text'>InType</title><content type='html'>Just found new interesting text editor &lt;a href="http://intype.info/"&gt;InType&lt;/a&gt;.&lt;br /&gt;&lt;blockquote&gt;Intype is a powerful and intuitive code editor for Windows with lightning fast response. It is easily extensible and customizable, thanks in part to its support for scripting and native plug-ins. It makes development in any programming or scripting language quick and easy.&lt;/blockquote&gt;&lt;br /&gt;Alpha version already supports for TM bundles. Programmers dream (TextMate on windows) becomes real.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-2604083054140671";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_type = "text_image";
//2007-03-28: cppmaniac.blogspot.com
google_ad_channel = "4296991405";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4706877598113916491-7029463352362034366?l=cppmaniac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cppmaniac.blogspot.com/feeds/7029463352362034366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4706877598113916491&amp;postID=7029463352362034366' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4706877598113916491/posts/default/7029463352362034366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4706877598113916491/posts/default/7029463352362034366'/><link rel='alternate' type='text/html' href='http://cppmaniac.blogspot.com/2007/03/intype.html' title='InType'/><author><name>maniac</name><uri>http://www.blogger.com/profile/05634391009211580305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4706877598113916491.post-8507696060143145244</id><published>2007-03-15T12:12:00.000+03:00</published><updated>2007-03-15T12:40:52.171+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='template'/><category scheme='http://www.blogger.com/atom/ns#' term='boost'/><category scheme='http://www.blogger.com/atom/ns#' term='cpp'/><title type='text'>Scope guard, вариант Александреску</title><content type='html'>Частенько приходится писать код вида:&lt;br /&gt;HANDLE h = OpenSomeHandle();&lt;br /&gt;...&lt;br /&gt;CloseHandle(h);&lt;br /&gt;&lt;br /&gt;Понятно, что такой код небезопасен и чреват многими багами, поэтому умные люди пишут обертки на манер auto_ptr.&lt;br /&gt;Они прекрасно работают, но каждая со своими ресурсами, а хочется универсальности.&lt;br /&gt;Отсюда и возникает идея универсального scope guard, который работал бы с любыми ресурсами.&lt;br /&gt;А дальше был код:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;class ScopeGuardImplBase&lt;br /&gt;{&lt;br /&gt;public:&lt;br /&gt;    void Dismiss() const throw()&lt;br /&gt;    {&lt;br /&gt;        dismissed_ = true;&lt;br /&gt;    }&lt;br /&gt;protected:&lt;br /&gt;    ScopeGuardImplBase() : dismissed_(false)&lt;br /&gt;    {}&lt;br /&gt;    ScopeGuardImplBase(const ScopeGuardImplBase &amp;other)&lt;br /&gt;    : dismissed_(other.dismissed_)&lt;br /&gt;    {&lt;br /&gt;        other.Dismiss();&lt;br /&gt;    }&lt;br /&gt;    ~ScopeGuardImplBase() {}&lt;br /&gt;    mutable bool dismissed_;&lt;br /&gt;private:&lt;br /&gt;    ScopeGuardImplBase&amp; operator=(const ScopeGuardImplBase&amp;);&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;template &lt;typename Fun&gt;&lt;br /&gt;class ScopeGuardImpl : public ScopeGuardImplBase&lt;br /&gt;{&lt;br /&gt;public:&lt;br /&gt;    ScopeGuardImpl(const Fun &amp;fun) : fun_(fun)&lt;br /&gt;    {}&lt;br /&gt;    ~ScopeGuardImpl()&lt;br /&gt;    {&lt;br /&gt;        if (!dismissed_) fun_();&lt;br /&gt;    }&lt;br /&gt;private:&lt;br /&gt;    Fun fun_;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;//fun - функция освобождающая ресурс&lt;br /&gt;template &lt;typename Fun&gt;&lt;br /&gt;ScopeGuardImpl&lt;Fun&gt; MakeGuard(const Fun &amp;fun)&lt;br /&gt;{&lt;br /&gt;    return ScopeGuardImpl&lt;Fun&gt;(fun);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;typedef ScopeGuardImplBase&amp; ScopeGuard;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Использование:&lt;br /&gt;ScopeGuard someHandle = MakeGuard(&amp;CloseHandle);&lt;br /&gt;Если освобождающей ресурсы функции необходимо передать параметры, то здесь нам поможет boost::bind.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-2604083054140671";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_type = "text_image";
//2007-03-28: cppmaniac.blogspot.com
google_ad_channel = "4296991405";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4706877598113916491-8507696060143145244?l=cppmaniac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cppmaniac.blogspot.com/feeds/8507696060143145244/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4706877598113916491&amp;postID=8507696060143145244' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4706877598113916491/posts/default/8507696060143145244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4706877598113916491/posts/default/8507696060143145244'/><link rel='alternate' type='text/html' href='http://cppmaniac.blogspot.com/2007/03/scope-guard.html' title='Scope guard, вариант Александреску'/><author><name>maniac</name><uri>http://www.blogger.com/profile/05634391009211580305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4706877598113916491.post-6739937534328394277</id><published>2007-03-15T11:33:00.000+03:00</published><updated>2007-03-16T10:14:58.988+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='books'/><category scheme='http://www.blogger.com/atom/ns#' term='cpp'/><title type='text'>Modern C++ design</title><content type='html'>&lt;a href="http://www.amazon.com/Modern-C%2B%2B-Design-Programming-Patterns/dp/0201704315/ref=pd_bbs_sr_1/103-1236836-1696611?ie=UTF8&amp;s=books&amp;amp;qid=1173947536&amp;amp;sr=8-1"&gt;Modern C++ design&lt;/a&gt; - одна из самых мощных книг по C++. В основном посвящена метапрограммированию.&lt;br /&gt;Идея простая: если это может сделать компилятор, то незачем выполнять код в рантайме.&lt;br /&gt;Обязательна к прочтению людям, думающим, что шаблоны нужны только для создания контейнеров.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-2604083054140671";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_type = "text_image";
//2007-03-28: cppmaniac.blogspot.com
google_ad_channel = "4296991405";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4706877598113916491-6739937534328394277?l=cppmaniac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cppmaniac.blogspot.com/feeds/6739937534328394277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4706877598113916491&amp;postID=6739937534328394277' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4706877598113916491/posts/default/6739937534328394277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4706877598113916491/posts/default/6739937534328394277'/><link rel='alternate' type='text/html' href='http://cppmaniac.blogspot.com/2007/03/modern-c-design.html' title='Modern C++ design'/><author><name>maniac</name><uri>http://www.blogger.com/profile/05634391009211580305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4706877598113916491.post-6359359684166250451</id><published>2007-03-14T15:23:00.000+03:00</published><updated>2007-03-14T15:24:13.142+03:00</updated><title type='text'>Hello, world!</title><content type='html'>Lets start&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-2604083054140671";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_type = "text_image";
//2007-03-28: cppmaniac.blogspot.com
google_ad_channel = "4296991405";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4706877598113916491-6359359684166250451?l=cppmaniac.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cppmaniac.blogspot.com/feeds/6359359684166250451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4706877598113916491&amp;postID=6359359684166250451' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4706877598113916491/posts/default/6359359684166250451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4706877598113916491/posts/default/6359359684166250451'/><link rel='alternate' type='text/html' href='http://cppmaniac.blogspot.com/2007/03/hello-world.html' title='Hello, world!'/><author><name>maniac</name><uri>http://www.blogger.com/profile/05634391009211580305</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
