<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Granville Barnett : C++</title><link>http://weblogs.asp.net/gbarnett/archive/tags/C_2B002B00_/default.aspx</link><description>Tags: C++</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Shared Source CLI Google group launched</title><link>http://weblogs.asp.net/gbarnett/archive/2009/01/06/shared-source-cli-google-group-launched.aspx</link><pubDate>Tue, 06 Jan 2009 04:53:03 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6822151</guid><dc:creator>gbarnett</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I’ve just created a Google group based on the SSCLI which you can view and join by going here - &lt;a href="http://groups.google.com/group/microsoft-shared-source-cli"&gt;http://groups.google.com/group/microsoft-shared-source-cli&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;It supersedes now defunct SSCLI newsgroups from the Microsoft and Yahoo servers which have had all but no activity in the last 2 or so years. If you have any interest whatsoever in the SSCLI then I encourage you to join.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://groups.google.com/group/microsoft-shared-source-cli"&gt;http://groups.google.com/group/microsoft-shared-source-cli&lt;/a&gt;&lt;/p&gt;
&lt;span style="font-size: x-large; text-decoration: underline;"&gt;Originally posted at &lt;a href="http://msmvps.com/blogs/gbarnett"&gt;http://msmvps.com/blogs/gbarnett&lt;/a&gt;. Please post &lt;strong&gt;all&lt;/strong&gt; comments there. Thanks, Granville.&lt;/span&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6822151" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/gbarnett/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/gbarnett/archive/tags/C_2B002B00_/default.aspx">C++</category><category domain="http://weblogs.asp.net/gbarnett/archive/tags/SSCLI/default.aspx">SSCLI</category></item><item><title>Shared Source CLI (aka Rotor) on Vista</title><link>http://weblogs.asp.net/gbarnett/archive/2008/12/08/shared-source-cli-aka-rotor-on-vista.aspx</link><pubDate>Mon, 08 Dec 2008 05:00:15 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6770826</guid><dc:creator>gbarnett</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I thought I would share my experiences with Rotor on Vista (x86 and x64). First off Rotor is an open source version of a big chunk of what's in the full commercial .NET that you use on your machine today BUT certain things in Rotor are no where near the quality of that in the commercial .NET – keep that in mind. &lt;/p&gt;  &lt;p&gt;I hacked around with Rotor on several setups not including the supported setup (XP with SP2 and VC++ 8.0). My mileage with each is briefly summarized below.&lt;/p&gt;  &lt;h2&gt;Vista x64 with VC++ 9.0&lt;/h2&gt;  &lt;p&gt;I tried to get Rotor working with Vista x64 and VC++ 9.0 but was unsuccessful. Couldn’t even get it to build. This was as I expected though.&lt;/p&gt;  &lt;h2&gt;Vista x86 with VC++ 9.0&lt;/h2&gt;  &lt;p&gt;Made the same changes I did with the x64 version pretty much and got it to build. After the initial hope of it all building and the tests that Rotor comes with all passing I was somewhat annoyed that some programs including the C# compiler were not behaving correctly e.g., the C# compiler would give random parser errors for programs. I’m sure that other components were affected as well but seens as though I needed the C# compiler to work this was pretty much the final straw for me.&lt;/p&gt;  &lt;h2&gt;Vista x86 with VC++ 8.0&lt;/h2&gt;  &lt;p&gt;Builds without any hacking required. Every now and then though a buffer overrun would occur during the build, particularly when building some of the BCL C# stuff. Haven’t had this error again since I rebuilt my machine but the obvious fix would be to just make the buffer that is overran larger. This occurred during a call to &lt;em&gt;MakeMacroString&lt;/em&gt; and it seems as though someone &lt;a href="http://afjohansson.spaces.live.com/blog/cns!3CA68ED86F5A5970!377.entry"&gt;else&lt;/a&gt; has come across this as well.&lt;/p&gt;  &lt;p&gt;My personal view is that the SSCLI project is doomed to spend the rest of its time only officially supporting that which it did when it was first released. If anyone knows any different then let me know. I couldn’t find any information on the web hinting that it would be updated if only to support Vista.&lt;/p&gt;
&lt;span style="font-size: x-large; text-decoration: underline;"&gt;Originally posted at &lt;a href="http://msmvps.com/blogs/gbarnett"&gt;http://msmvps.com/blogs/gbarnett&lt;/a&gt;. Please post &lt;strong&gt;all&lt;/strong&gt; comments there. Thanks, Granville.&lt;/span&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6770826" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/gbarnett/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/gbarnett/archive/tags/C_2B002B00_/default.aspx">C++</category><category domain="http://weblogs.asp.net/gbarnett/archive/tags/SSCLI/default.aspx">SSCLI</category></item><item><title>Results: Using a dark theme in VS for a week</title><link>http://weblogs.asp.net/gbarnett/archive/2008/09/26/results-using-a-dark-theme-in-vs-for-a-week.aspx</link><pubDate>Fri, 26 Sep 2008 17:20:35 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6643154</guid><dc:creator>gbarnett</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;As I &lt;a href="http://msmvps.com/blogs/gbarnett/archive/2008/09/20/experiment-using-a-dark-theme-in-vs-for-a-week.aspx"&gt;mentioned&lt;/a&gt; several days ago I’ve been seeing if a dark theme in VS would help my eyes a little. The short of it is – no, no it didn’t. The major sore point is that if you use a dark theme in VS then you find yourself constantly swapping between dark (VS) and light (web content, content in general). The latter of course doesn’t sound like its particularly good for you and I’d definitely concur with that.&lt;/p&gt;  &lt;p&gt;I actually found that my background was slightly off-white in my VS settings and since changing it to pure white around 3 or so days ago I’ve found that my eye strain has just disappeared. Funny thing is I can never remember changing the background colour.&lt;/p&gt;  &lt;p&gt;I’ve no doubt that the colour schemes used in VS are very subjective so I won’t announce that light themes are the best, but it seems to work well for me.&lt;/p&gt;
&lt;span style="font-size: x-large; text-decoration: underline;"&gt;Originally posted at &lt;a href="http://msmvps.com/blogs/gbarnett"&gt;http://msmvps.com/blogs/gbarnett&lt;/a&gt;. Please post &lt;strong&gt;all&lt;/strong&gt; comments there. Thanks, Granville.&lt;/span&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6643154" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/gbarnett/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/gbarnett/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://weblogs.asp.net/gbarnett/archive/tags/C_2B002B00_/default.aspx">C++</category><category domain="http://weblogs.asp.net/gbarnett/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Experiment: Using a dark theme in VS for a week</title><link>http://weblogs.asp.net/gbarnett/archive/2008/09/20/experiment-using-a-dark-theme-in-vs-for-a-week.aspx</link><pubDate>Sat, 20 Sep 2008 14:03:28 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6636006</guid><dc:creator>gbarnett</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I've been highly critical of using dark themes in Visual Studio particularly because the UI of VS is light in its very nature. The combination of the two proving to be an interesting proposition when using VS for large durations of time.&lt;/p&gt; &lt;p&gt;I digress. Recently I have suffered a few eye issues and I'm pretty much willing to try and use a dark theme now for more than an hour and then dismissing it in the hope that it may help me out a little. I have tried a few other minor solutions prior to this experiment, the most of which revolve around making the background colour of VS a slightly off-white colour. If anything that approach made things worse.&lt;/p&gt; &lt;p&gt;I'll be using the theme for all my coding which spans from C++ to C# and see how it goes. The theme I will use is &lt;a href="http://blog.wekeroad.com/2007/10/17/textmate-theme-for-visual-studio-take-2/"&gt;Vibrant Ink&lt;/a&gt; by &lt;a href="http://blog.wekeroad.com"&gt;Rob Conery&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Hopefully this may help my eyes a little? ...&lt;/p&gt;
&lt;span style="font-size: x-large; text-decoration: underline;"&gt;Originally posted at &lt;a href="http://msmvps.com/blogs/gbarnett"&gt;http://msmvps.com/blogs/gbarnett&lt;/a&gt;. Please post &lt;strong&gt;all&lt;/strong&gt; comments there. Thanks, Granville.&lt;/span&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6636006" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/gbarnett/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/gbarnett/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://weblogs.asp.net/gbarnett/archive/tags/C_2B002B00_/default.aspx">C++</category><category domain="http://weblogs.asp.net/gbarnett/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>DSA book on 'This Week on C9'</title><link>http://weblogs.asp.net/gbarnett/archive/2008/08/30/dsa-book-on-this-week-on-c9.aspx</link><pubDate>Sat, 30 Aug 2008 05:42:18 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6580131</guid><dc:creator>gbarnett</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;First off thank you to all who have downloaded the first draft of &lt;a href="http://dotnetslackers.com/projects/Data-Structures-And-Algorithms"&gt;Data Structures and Algorithms: Annotated Reference with Examples&lt;/a&gt;. At the time of writing this post there have been more than &lt;a href="http://dotnetslackers.com/Community/files/folders/data-structures-and-algorithms/entry28722.aspx"&gt;3200 downloads&lt;/a&gt; within around 3 days of it being put up on &lt;a href="http://dotnetslackers.com/"&gt;DotNetSlackers&lt;/a&gt; which is great!&lt;/p&gt; &lt;p&gt;Thanks to all those who have helped spread the word by linking to the posts I made and to the actual project page. I'd also like to thank &lt;a href="http://blogs.msdn.com/danielfe/"&gt;Dan Fernandez&lt;/a&gt; who gave the book a mention on &lt;a href="http://channel9.msdn.com/shows/This+Week+On+Channel+9/This-Week-on-C9-IE8-and-Popfly-Betas-WPF-tools-and-apps-SP1-improvements-and-more/"&gt;This Week on C9&lt;/a&gt; (a weekly review program on the popular &lt;a href="http://channel9.msdn.com/"&gt;Channel9&lt;/a&gt; site). You can view the episode &lt;a href="http://channel9.msdn.com/shows/This+Week+On+Channel+9/This-Week-on-C9-IE8-and-Popfly-Betas-WPF-tools-and-apps-SP1-improvements-and-more"&gt;here&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;If you haven't checked it out already then go give the first draft of &lt;a href="http://dotnetslackers.com/projects/Data-Structures-And-Algorithms/"&gt;Data Structures and Algorithms: Annotated Reference with Examples&lt;/a&gt; a look.&lt;/p&gt;
&lt;span style="font-size: x-large; text-decoration: underline;"&gt;Originally posted at &lt;a href="http://msmvps.com/blogs/gbarnett"&gt;http://msmvps.com/blogs/gbarnett&lt;/a&gt;. Please post &lt;strong&gt;all&lt;/strong&gt; comments there. Thanks, Granville.&lt;/span&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6580131" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/gbarnett/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/gbarnett/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://weblogs.asp.net/gbarnett/archive/tags/C_2B002B00_/default.aspx">C++</category><category domain="http://weblogs.asp.net/gbarnett/archive/tags/Data+Structures+and+Algorithms/default.aspx">Data Structures and Algorithms</category></item><item><title>Data Structures and Algorithms book (free) first preview available!</title><link>http://weblogs.asp.net/gbarnett/archive/2008/08/27/data-structures-and-algorithms-book-free-first-preview-available.aspx</link><pubDate>Wed, 27 Aug 2008 07:55:27 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6571567</guid><dc:creator>gbarnett</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;This is a little project that myself and &lt;a href="#"&gt;Luca&lt;/a&gt; have been working on in our spare (spare) time in the last month&lt;a href="http://gbarnett.org/BlogPosts/DataStructuresandAlgorithmsbookfreefirst_1067/DSA_Book.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px 0px 0px 5px; border-right-width: 0px" height="240" alt="DSA_Book" src="http://gbarnett.org/BlogPosts/DataStructuresandAlgorithmsbookfreefirst_1067/DSA_Book_thumb.png" width="169" align="right" border="0"&gt;&lt;/a&gt; or so. The book is no where near complete but we wanted to get it out there now and progress with it in view of the public eye rather than just sit on it and wait months until it was a lot more thorough. &lt;/p&gt; &lt;p&gt;As this is just a preview don't expect it to be all finely polished, we know what we are lacking in terms of explanations. No chapter in the preview is the final version of that respective chapter. It's also worth mentioning that this is not the final list of chapters. &lt;/p&gt; &lt;p&gt;Our intended target audience are those who know how to use their respective language of choice, other than that you should be OK to follow the book. We have intentionally tried to keep the book compact and to the point.&lt;/p&gt; &lt;p&gt;The book is language independent. We use a form of pseudocode for all algorithms as such these algorithms can be easily ported to most imperative languages like C++, C#, and Java. &lt;/p&gt; &lt;p&gt;Why is it free? Because we want it to be. At this present moment in time all suggestions etc have come from a small number of reviewers, for which we are incredibly grateful. But we felt the time was right to throw it out to the larger audience so we can get more feedback on what we have thus far.&lt;/p&gt; &lt;p&gt;The book is hosted for us on &lt;a href="http://dotnetslackers.com"&gt;DotNetSlackers&lt;/a&gt;, you can view the page dedicated to the book &lt;a href="http://dotnetslackers.com/projects/Data-Structures-And-Algorithms/"&gt;here&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Go check out the first preview of &lt;a href="http://dotnetslackers.com/projects/Data-Structures-And-Algorithms/"&gt;Data Structures and Algorithms: Annotated Reference with Examples&lt;/a&gt; now!!!&lt;/p&gt; &lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; if you could help spread the word we would be incredibly grateful ;-)&lt;/p&gt;
&lt;span style="font-size: x-large; text-decoration: underline;"&gt;Originally posted at &lt;a href="http://msmvps.com/blogs/gbarnett"&gt;http://msmvps.com/blogs/gbarnett&lt;/a&gt;. Please post &lt;strong&gt;all&lt;/strong&gt; comments there. Thanks, Granville.&lt;/span&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6571567" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/gbarnett/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/gbarnett/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://weblogs.asp.net/gbarnett/archive/tags/C_2B002B00_/default.aspx">C++</category><category domain="http://weblogs.asp.net/gbarnett/archive/tags/Data+Structures+and+Algorithms/default.aspx">Data Structures and Algorithms</category></item><item><title>My Visual Studio vNext wish list</title><link>http://weblogs.asp.net/gbarnett/archive/2008/08/04/my-visual-studio-vnext-wish-list.aspx</link><pubDate>Mon, 04 Aug 2008 04:20:57 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6480576</guid><dc:creator>gbarnett</dc:creator><slash:comments>5</slash:comments><description>&lt;p&gt;My wish list for Visual Studio vNext isn't that long. The things I would like to see in Visual Studio vNext (I'm not that hopeful) are the following:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;A filtering intellisense members list box  &lt;li&gt;Some intelligent suggestions  &lt;li&gt;More refactoring options&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Unfortunately I am going to do the unmentionable and compare VS to Eclipse.&lt;/p&gt; &lt;h4&gt;A filtering intellisense members list box&lt;/h4&gt; &lt;p&gt;As the number of classes in the BCL grows, and with newer technologies arriving all the time I don't think there has ever been a better time to implement this feature. Eclipse does a good job of it and is incredibly handy:&lt;/p&gt; &lt;p&gt;&lt;a href="http://gbarnett.org/BlogPosts/MyVisualStudiovNextwishlist_12DA8/eclipse_make_that_list_smaller_1.png"&gt;&lt;img border="0" alt="eclipse_make_that_list_smaller_1" src="http://gbarnett.org/BlogPosts/MyVisualStudiovNextwishlist_12DA8/eclipse_make_that_list_smaller_1_thumb.png" width="415" height="320"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;a href="http://gbarnett.org/BlogPosts/MyVisualStudiovNextwishlist_12DA8/eclipse_make_that_list_smaller_2.png"&gt;&lt;img border="0" alt="eclipse_make_that_list_smaller_2" src="http://gbarnett.org/BlogPosts/MyVisualStudiovNextwishlist_12DA8/eclipse_make_that_list_smaller_2_thumb.png" width="433" height="295"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;There are some products out there that you can actually install to do this, they include:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.jetbrains.com/resharper/"&gt;Resharper&lt;/a&gt; (Using the native Resharper intellisense stuff)  &lt;li&gt;&lt;a href="http://www.wholetomato.com/"&gt;Visual Assist X&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;h4&gt;Some intelligent suggestions&lt;/h4&gt; &lt;p&gt;This is a lame example, but its a pretty common one. Today in VS suggestions for the most part are non-existent. I know that in VS 2008 SP1 background compilation for C# is here (warnings, errors) but it still doesn't give you what Eclipse does with respect to suggestions.&lt;/p&gt; &lt;p&gt;&lt;a href="http://gbarnett.org/BlogPosts/MyVisualStudiovNextwishlist_12DA8/eclipse_unused_imports.png"&gt;&lt;img border="0" alt="eclipse_unused_imports" src="http://gbarnett.org/BlogPosts/MyVisualStudiovNextwishlist_12DA8/eclipse_unused_imports_thumb.png" width="291" height="79"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;I know that there are probably a tonne of people reading this now shouting "You can remove unused using directives now!" True, but its never emphasised to you by the IDE. Again I find myself uttering the word Resharper for this stuff, but should we really have to buy into a 3rd party product for something like this? We could also extend this to something like variables that are never referenced.&lt;/p&gt; &lt;p&gt;&lt;a href="http://gbarnett.org/BlogPosts/MyVisualStudiovNextwishlist_12DA8/eclipse_unused_vars.png"&gt;&lt;img border="0" alt="eclipse_unused_vars" src="http://gbarnett.org/BlogPosts/MyVisualStudiovNextwishlist_12DA8/eclipse_unused_vars_thumb.png" width="344" height="74"&gt;&lt;/a&gt; &lt;/p&gt; &lt;h4&gt;More refactoring options&lt;/h4&gt; &lt;p&gt;Eclipse offers an absolute tonne of refactoring options which are integrated really great into the IDE.&lt;/p&gt; &lt;p&gt;&lt;a href="http://gbarnett.org/BlogPosts/MyVisualStudiovNextwishlist_12DA8/eclipse_refactor_menu.png"&gt;&lt;img border="0" alt="eclipse_refactor_menu" src="http://gbarnett.org/BlogPosts/MyVisualStudiovNextwishlist_12DA8/eclipse_refactor_menu_thumb.png" width="359" height="646"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;While I don't have any major gripes about what is offered in VS 2008 with respect to refactoring, I do think it lacks somewhat. Some of the refactoring options in VS could do with a more streamlined approach as well. A great example of this is the rename option. Invoking rename will open a big goofy dialogue box which would be appropriate if you were renaming a field or something - in place renaming would be much more appropriate for local renaming's though.&lt;/p&gt; &lt;p&gt;&lt;a href="http://gbarnett.org/BlogPosts/MyVisualStudiovNextwishlist_12DA8/eclipse_in_place_renaming.png"&gt;&lt;img border="0" alt="eclipse_in_place_renaming" src="http://gbarnett.org/BlogPosts/MyVisualStudiovNextwishlist_12DA8/eclipse_in_place_renaming_thumb.png" width="327" height="95"&gt;&lt;/a&gt; &lt;/p&gt; &lt;h4&gt;Final thoughts&lt;/h4&gt; &lt;p&gt;I really like VS and all that it gives you but I can't help feel that we are losing out on some of this stuff. I'm sure that the VS team are incredibly busy building new designers, but if anyone on the VS team happen's to stumble across this post then please give these features consideration.&lt;/p&gt; &lt;p&gt;Purposely I have not mentioned C++, they have enough trouble getting intellisense working as it is. If you are interested in this though then check out &lt;a href="http://blogs.msdn.com/vcblog/archive/2007/12/18/intellisense-history-part-1.aspx"&gt;Intellisense History, Part 1&lt;/a&gt; and &lt;a href="http://blogs.msdn.com/vcblog/archive/2008/02/29/intellisense-part-2-the-future.aspx"&gt;Intellisense, Part 2 (The Future)&lt;/a&gt;. Both blog posts are from the &lt;a href="http://blogs.msdn.com/vcblog"&gt;VC++ blog&lt;/a&gt;. &lt;a href="http://www.wholetomato.com/"&gt;Visual Assist X&lt;/a&gt; is a nice tool though if you want a more rounded experience in VC++ land right now.&lt;/p&gt;
&lt;span style="font-size: x-large; text-decoration: underline;"&gt;Originally posted at &lt;a href="http://msmvps.com/blogs/gbarnett"&gt;http://msmvps.com/blogs/gbarnett&lt;/a&gt;. Please post &lt;strong&gt;all&lt;/strong&gt; comments there. Thanks, Granville.&lt;/span&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6480576" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/gbarnett/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://weblogs.asp.net/gbarnett/archive/tags/C_2B002B00_/default.aspx">C++</category><category domain="http://weblogs.asp.net/gbarnett/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>C++ portability guide</title><link>http://weblogs.asp.net/gbarnett/archive/2008/04/20/c-portability-guide.aspx</link><pubDate>Sun, 20 Apr 2008 18:16:17 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6116039</guid><dc:creator>gbarnett</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I was looking for this document a while ago and couldn't seem to find it but I stumbled across it moments ago almost by chance. It's the the Mozilla guidance for C++ portability - give it a read &lt;a href="http://developer.mozilla.org/en/docs/C%2B%2B_Portability_Guide"&gt;here&lt;/a&gt; if you are interested in that stuff it is full of subtle pointers that make sense (and some that are not that obvious).&lt;/p&gt;  &lt;p&gt;If you have a spare few minutes give it a read, it is fairly comprehensive but at the same time I would take some of it with a pinch of salt.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6116039" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/gbarnett/archive/tags/Compilers/default.aspx">Compilers</category><category domain="http://weblogs.asp.net/gbarnett/archive/tags/C_2B002B00_/default.aspx">C++</category><category domain="http://weblogs.asp.net/gbarnett/archive/tags/VC_2B002B00_/default.aspx">VC++</category></item><item><title>Something I let pass me by - VC++ TR1 released</title><link>http://weblogs.asp.net/gbarnett/archive/2008/04/11/something-i-let-pass-me-by-vc-tr1-released.aspx</link><pubDate>Fri, 11 Apr 2008 22:30:33 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6088792</guid><dc:creator>gbarnett</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;If you have been using the Boost libraries then you will probably not see anything major that's not already in the Boost TR1 library BUT officially VC++ now has a TR1 implementation which is always a good thing.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/vcblog/archive/2008/04/07/visual-c-2008-feature-pack-released.aspx"&gt;Information about TR1&lt;/a&gt; (and the MFC update - which is itself is a major improvement!), and the download &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=D466226B-8DAB-445F-A7B4-448B326C48E7&amp;amp;displaylang=en"&gt;link&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Also of note &lt;a href="http://herbsutter.wordpress.com/"&gt;Herb Sutter&lt;/a&gt; has moved blogs again! This guy changes blog every year it seems but he's worth tracking!&lt;/p&gt;  &lt;p&gt;Herb stop it!&lt;/p&gt;  &lt;p&gt;Enjoy this, its a nice update to VC++.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6088792" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/gbarnett/archive/tags/C_2B002B00_/default.aspx">C++</category><category domain="http://weblogs.asp.net/gbarnett/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/gbarnett/archive/tags/VC_2B002B00_/default.aspx">VC++</category></item><item><title>Visual C++ in Visual Studio 10 will use SQL Server Compact instead of ncb's</title><link>http://weblogs.asp.net/gbarnett/archive/2008/03/01/visual-c-in-visual-studio-10-will-use-sql-server-compact-instead-of-ncb-s.aspx</link><pubDate>Sat, 01 Mar 2008 17:32:13 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5896800</guid><dc:creator>gbarnett</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;For many this will no doubt induce a sigh of relief, we've all been there in moderately sized projects and then happened to see that the ncb file size seems to have grown exponentially - I don't think I've ever met someone who hasn't deleted the ncb file numerous times to try and coerce the IDE to give some intellisense support.&lt;/p&gt;  &lt;p&gt;I'm sure they will have to jump through some hoops, but it makes perfect sense to go with something that the database guys have put an immense amount of work in, as a result I'm sure we will see vastly reduced file sizes and superior response times in terms of intellisense, hopefully the implementation will be &amp;quot;good&amp;quot; enough to implement other features like refactoring support, probably not as comprehensive as C# or other managed languages but anything is an improvement.&lt;/p&gt;  &lt;p&gt;This is great news though, Jim Springfield the VC++ architect has more on this &lt;a href="http://blogs.msdn.com/vcblog/archive/2008/02/29/intellisense-part-2-the-future.aspx#comments"&gt;here&lt;/a&gt;, if you want to skip to the more interesting stuff then read the last paragraph which talks about scaling the source code information (SQL Server instance) and some potential features.&lt;/p&gt;  &lt;p&gt;Interesting stuff.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5896800" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/gbarnett/archive/tags/C_2B002B00_/default.aspx">C++</category><category domain="http://weblogs.asp.net/gbarnett/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://weblogs.asp.net/gbarnett/archive/tags/VC_2B002B00_/default.aspx">VC++</category></item><item><title>A few slide decks that may be of interest (C++ TR1)</title><link>http://weblogs.asp.net/gbarnett/archive/2008/02/25/a-few-slide-decks-that-may-be-of-interest-c-tr1.aspx</link><pubDate>Mon, 25 Feb 2008 14:17:30 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5859462</guid><dc:creator>gbarnett</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I missed this but last Friday the VC blog guys put up some slide decks on the &amp;quot;new&amp;quot; stuff in TR1, I enclose new in quotations because if you've used Boost before then its not new, rather its just the native support for those features - which is a good thing. &lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.msdn.com/vcblog/archive/2008/02/22/tr1-slide-decks.aspx" href="http://blogs.msdn.com/vcblog/archive/2008/02/22/tr1-slide-decks.aspx"&gt;http://blogs.msdn.com/vcblog/archive/2008/02/22/tr1-slide-decks.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;These are great additions to the language, but if you don't want to use the Beta for fear of breaking something then just download the &lt;a href="http://www.boost.org/"&gt;Boost&lt;/a&gt; source and go from there.&lt;/p&gt;  &lt;p&gt;Here is the link for the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=D466226B-8DAB-445F-A7B4-448B326C48E7&amp;amp;displaylang=en"&gt;VC++ 2008 Feature Pack Beta (TR1 and MFC)&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5859462" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/gbarnett/archive/tags/C_2B002B00_/default.aspx">C++</category><category domain="http://weblogs.asp.net/gbarnett/archive/tags/VC_2B002B00_/default.aspx">VC++</category><category domain="http://weblogs.asp.net/gbarnett/archive/tags/Boost/default.aspx">Boost</category></item><item><title>VS 2008 C++ refactoring...</title><link>http://weblogs.asp.net/gbarnett/archive/2008/02/17/vs-2008-c-refactoring.aspx</link><pubDate>Sun, 17 Feb 2008 20:43:27 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5809032</guid><dc:creator>gbarnett</dc:creator><slash:comments>13</slash:comments><description>&lt;p&gt;...well there still is none.&lt;/p&gt;  &lt;p&gt;I seem to be pressing commands in VS 2008 Win32 projects which would invoke pretty basic refactoring tools in C# and VB.NET but yet C++ has nothing! Now I know the VC guys are working on a parser that will help with the intellisense in VS C++ projects (yep lonnnng time off yet) - if like me you don't even waste time with intellisense in C++ projects as its just a disappointment when you are there hitting ctrl + space waiting for something (yep, ctrl + space because intellisense never comes up on its own in C++ projects does it?!) that never quite arrives, the result is that you just wasted 5 seconds - you could of typed it by then.&lt;/p&gt;  &lt;p&gt;For about 18 months I used to have C# intellisense turned off by default, yes I know you are thinking why and that I'm an absolute plonker, but honestly I just enjoyed having the freedom of typing whatever the heck I wanted and then sorting it out seconds later rather than battling with intellisense trying to tell me what I meant to do was this. Ctrl + space is your friend, needless to say I do have it turned back on in C# now.&lt;/p&gt;  &lt;p&gt;Anyway I digress, what I would really, really love to see is primitive help with mundane boring tasks like extracting methods, renaming with a snazzy live preview of everything that I am affecting, who knows maybe even reorder some parameters?&lt;/p&gt;  &lt;p&gt;I know VS 2008 launch parties haven't kicked off yet, but I have to say roll on VS vNext.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5809032" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/gbarnett/archive/tags/C_2B002B00_/default.aspx">C++</category><category domain="http://weblogs.asp.net/gbarnett/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Cross-Platform Development in C++ (Book)</title><link>http://weblogs.asp.net/gbarnett/archive/2008/01/25/cross-platform-development-in-c-book.aspx</link><pubDate>Fri, 25 Jan 2008 20:26:52 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5651853</guid><dc:creator>gbarnett</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I have been sent a few books from Addison-Wesley and I think this one is the best of them all, but generally all have been excellent.&amp;#160; The book covers in great detail the various aspects to consider when creating portable C++ code, from GUI's to the actual process used to create the software.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.amazon.com/Cross-Platform-Development-C%2B%2B-Building-Applications/dp/032124642X/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1201292033&amp;amp;sr=8-1" target="_blank"&gt;&lt;img height="225" alt="crossplatform" src="http://gbarnett.org/BlogPosts/CrossPlatformDevelopmentinCBook_11F82/crossplatform.jpg" width="225" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;One of the interesting things about the book is a decent overview of &lt;a href="http://www.mozilla.org/projects/xul/"&gt;XUL&lt;/a&gt; which is a cross platform GUI toolkit that uses XML (like WPF) to describe the visual components - this technology can be used on various OS's.&amp;#160; I found this particularly interesting as I had not really read much about XUL for a few years since I first came across it and it was really nice to see that it has developed into a fairly robust framework.&lt;/p&gt;  &lt;p&gt;The book is written by Syd Logan who worked on the Netscape team, the book is riddled with short stories of times he had personally and his team had encountered cross-platform issues and the solutions that they used, as well as possible alternatives.&lt;/p&gt;  &lt;p&gt;This book was an awesome read, and one that provided great insight into the particular area - if you are interested in this then Syd's book will give you a general overview of everything to consider as well as a few technologies to use (or that he in his experience found incredibly useful) from Bugzilla, to make files, management, NSPR, Installers etc.&lt;/p&gt;  &lt;p&gt;Highly recommended.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5651853" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/gbarnett/archive/tags/C_2B002B00_/default.aspx">C++</category></item><item><title>Copy-in, Copy-out and reference semantics</title><link>http://weblogs.asp.net/gbarnett/archive/2007/11/14/copy-in-copy-out-and-reference-semantics.aspx</link><pubDate>Wed, 14 Nov 2007 12:21:10 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5164120</guid><dc:creator>gbarnett</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;I see this question pop-up every now and then on various forums and generally within conversations.&lt;/p&gt; &lt;p&gt;By default in languages like C# and C++ (and tonnes of others) copy-in semantics are used when dealing with the objects of formal method parameters. &lt;/p&gt; &lt;p&gt;Each can be viewed as read (copy-in), write (copy-out) and read-write (reference).&lt;/p&gt; &lt;p&gt;Although I have not checked my assumption is that modern, sophisticated compilers will in fact embrace the most efficient semantics in any particular scenario, e.g. say I have a method that takes a single argument by default I am using copy-in semantics and in the method I am not writing to that parameter only reading thus the compiler under the hood could just pass by reference which is more optimal.&lt;/p&gt; &lt;p&gt;Copy-in can be expensive if the formal parameter's are large in nature, e.g. large data structures etc, copy-out semantics are also expensive as they copy-in and then "push" the data back out again writing, references do neither but are more error prone.&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;using&lt;/span&gt; System;

&lt;span style="color: rgb(0,0,255)"&gt;namespace&lt;/span&gt; CopySemantics
{
    &lt;span style="color: rgb(0,0,255)"&gt;class&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;Program
&lt;/span&gt;    {
        &lt;span style="color: rgb(0,0,255)"&gt;static&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;void&lt;/span&gt; Main()
        {
            &lt;span style="color: rgb(43,145,175)"&gt;Person&lt;/span&gt; p = &lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;Person&lt;/span&gt;(&lt;span style="color: rgb(163,21,21)"&gt;"Granville"&lt;/span&gt;, &lt;span style="color: rgb(163,21,21)"&gt;"Barnett"&lt;/span&gt;);
            CopyIn(p);
            &lt;span style="color: rgb(43,145,175)"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: rgb(163,21,21)"&gt;"{0} {1}"&lt;/span&gt;, p.FirstName, p.LastName);
            CopyOut(&lt;span style="color: rgb(0,0,255)"&gt;out&lt;/span&gt; p);
            &lt;span style="color: rgb(43,145,175)"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: rgb(163,21,21)"&gt;"{0} {1}"&lt;/span&gt;, p.FirstName, p.LastName);
            Reference(&lt;span style="color: rgb(0,0,255)"&gt;ref&lt;/span&gt; p);
            &lt;span style="color: rgb(43,145,175)"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: rgb(163,21,21)"&gt;"{0} {1}"&lt;/span&gt;, p.FirstName, p.LastName);
        }

        &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;static&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;void&lt;/span&gt; CopyIn(&lt;span style="color: rgb(43,145,175)"&gt;Person&lt;/span&gt; person)
        {
            &lt;span style="color: rgb(0,128,0)"&gt;/* copy-in semantics, this method uses a local copy of 
             * the formal parameter if value type otherwise person &lt;br&gt;             * pointer value */
&lt;/span&gt;            person.FirstName = &lt;span style="color: rgb(163,21,21)"&gt;"Alan"&lt;/span&gt;;
            person.LastName = &lt;span style="color: rgb(163,21,21)"&gt;"Shearer"&lt;/span&gt;;
        }

        &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;static&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;void&lt;/span&gt; CopyOut(&lt;span style="color: rgb(0,0,255)"&gt;out&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;Person&lt;/span&gt; person)
        {
            &lt;span style="color: rgb(0,128,0)"&gt;/* Same as copy-in semantics but value is written to 
             * formal parameter object/value type. */
&lt;/span&gt;            person = &lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;Person&lt;/span&gt;(&lt;span style="color: rgb(163,21,21)"&gt;"John"&lt;/span&gt;, &lt;span style="color: rgb(163,21,21)"&gt;"Edwards"&lt;/span&gt;);
        }

        &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;static&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;void&lt;/span&gt; Reference(&lt;span style="color: rgb(0,0,255)"&gt;ref&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;Person&lt;/span&gt; person)
        {
            &lt;span style="color: rgb(0,128,0)"&gt;/* no copy-in or copy-out semantics used here, we are 
             * always dealing with the object passed in the formal 
             * parameter */
&lt;/span&gt;            person.FirstName = &lt;span style="color: rgb(163,21,21)"&gt;"Bill"&lt;/span&gt;;
            person.LastName = &lt;span style="color: rgb(163,21,21)"&gt;"Gates"&lt;/span&gt;;
        }

    }

    &lt;span style="color: rgb(0,0,255)"&gt;class&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;Person
&lt;/span&gt;    {
        &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; FirstName { &lt;span style="color: rgb(0,0,255)"&gt;get&lt;/span&gt;; &lt;span style="color: rgb(0,0,255)"&gt;set&lt;/span&gt;; }
        &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; LastName { &lt;span style="color: rgb(0,0,255)"&gt;get&lt;/span&gt;; &lt;span style="color: rgb(0,0,255)"&gt;set&lt;/span&gt;; }

        &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; Person(&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; firstName, &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; lastName)
        {
            FirstName = firstName;
            LastName = lastName;
        }

    }
}&lt;/pre&gt;
&lt;p&gt;Hopefully that clears some stuff up - but I would expect the C# or C++ compiler being used to go ahead and do some checks and then use the most efficient semantics anyway.&lt;/p&gt;
&lt;p&gt;Apologies if the example is poor, I just did this off the top of my head this minute :-(&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: copy out semantics are not in C++, you must use reference (read-write) semantics (&amp;amp;).&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: these semantics don't just apply to modern C++ compilers or the C# compiler, rather this is what most commercial grade compilers will do in some optimisation phase.&lt;/em&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5164120" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/gbarnett/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/gbarnett/archive/tags/Compilers/default.aspx">Compilers</category><category domain="http://weblogs.asp.net/gbarnett/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://weblogs.asp.net/gbarnett/archive/tags/C_2B002B00_/default.aspx">C++</category></item><item><title>C++0x looks like it's going to be awesome!</title><link>http://weblogs.asp.net/gbarnett/archive/2007/11/02/c-0x-looks-like-it-s-going-to-be-awesome.aspx</link><pubDate>Fri, 02 Nov 2007 18:58:14 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:4866820</guid><dc:creator>gbarnett</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I'm loving what I'm reading on &lt;a href="http://herbsutter.spaces.live.com/"&gt;Herb Sutter's&lt;/a&gt; blog after his trip to the &lt;a href="http://herbsutter.spaces.live.com/Blog/cns!2D4327CC297151BB!330.entry"&gt;ISO C++ standards meeting in October&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Among the things Herb raises, my favorites include:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2431.pdf"&gt;nullptr&lt;/a&gt; - finally a nice literal from C++/CLI is approved and we can all stop using 0 which although is not that confusing is also not that clear, and also the horrible macro NULL - I don't know why, but I hate using NULL...I think it's just because it's in caps and requires a little more effort when typing.&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2447.htm"&gt;threading library&lt;/a&gt; - about time, enough said.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;I am absolutely loving what I'm reading about C++0x!&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=4866820" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/gbarnett/archive/tags/C_2B002B00_/default.aspx">C++</category></item></channel></rss>