<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="https://www.ccdw.org"  xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>Creative Constant Development Workgroup - c++</title>
 <link>https://www.ccdw.org/taxonomy/term/1</link>
 <description></description>
 <language>en</language>
<item>
 <title>Visual Studio 命令提示字元 (2010)</title>
 <link>https://www.ccdw.org/node/6</link>
 <description>&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;Visual Studio 2010 Express提供了一個簡單的C++編譯環境：『Visual Studio 命令提示字元 (2010)』。&lt;br /&gt;
開啟後的終端機環境中可以用『cl』命令來編譯連結一般的C++程式。如：&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;span class=&quot;geshifilter&quot;&gt;&lt;code class=&quot;text geshifilter-text&quot;&gt;cl hello.cpp&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;而&lt;a href=&quot;http://www.opengl.org/resources/libraries/glut/&quot;&gt;glut&lt;/a&gt;的程式（在&lt;a href=&quot;http://www.idfun.de/glut64/&quot;&gt;glut&lt;/a&gt;有正確安裝後）也可以直接編譯。&lt;br /&gt;
不過如果要編譯WIN32的程式，在命令列則要加上kernel32.lib，user32.lib，gdi32.lib等額外的程式庫以供連結：&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;span class=&quot;geshifilter&quot;&gt;&lt;code class=&quot;text geshifilter-text&quot;&gt;cl hello-win.cpp kernel32.lib user32.lib gdi32.lib /FeHelloWin.exe&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-field-tags field-type-taxonomy-term-reference field-label-above&quot;&gt;&lt;div class=&quot;field-label&quot;&gt;Tags:&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot;&gt;&lt;a href=&quot;/taxonomy/term/1&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;c++&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Tue, 01 May 2012 01:41:00 +0000</pubDate>
 <dc:creator>cjj</dc:creator>
 <guid isPermaLink="false">6 at https://www.ccdw.org</guid>
 <comments>https://www.ccdw.org/node/6#comments</comments>
</item>
<item>
 <title>gltk, a C++ widget library built on GLUT</title>
 <link>https://www.ccdw.org/node/9</link>
 <description>&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;&lt;a href=&quot;http://gltk.ccdw.org/&quot;&gt;gltk&lt;/a&gt; is a C++ Widget library built on &lt;a href=&quot;http://www.opengl.org/resources/libraries/glut/&quot;&gt;GLUT&lt;/a&gt;. The API of gltk is modeled after &lt;a href=&quot;http://www.gtkmm.org/&quot;&gt;gtkmm&lt;/a&gt;, the C++ interface of the &lt;a href=&quot;http://www.gtk.org/&quot;&gt;GTK+&lt;/a&gt; library. The implementation of gltk was inspired by &lt;a href=&quot;http://glui.sourceforge.net/&quot;&gt;GLUI&lt;/a&gt;. By building on GLUT, the library is readily ported to platforms where GLUT (or &lt;a href=&quot;http://freeglut.sourceforge.net/&quot;&gt;FreeGLUT&lt;/a&gt;) is available. These include Linux, Windows, and Mac OS X.&lt;/p&gt;
&lt;p&gt;A loose goal of gltk is to be API compatible with gtkmm, where people can, ideally, replace the &lt;span class=&quot;geshifilter&quot;&gt;&lt;code class=&quot;text geshifilter-text&quot;&gt;Gtk&lt;/code&gt;&lt;/span&gt; namespace by &lt;span class=&quot;geshifilter&quot;&gt;&lt;code class=&quot;text geshifilter-text&quot;&gt;gltk&lt;/code&gt;&lt;/span&gt; and have their programs compile and run on platforms where gtkmm is not available. Under the limitation of GLUT, such goal can only be filled partially. In reality, this project only aims for a close approximation to the most commonly used part of the API, so the author does not have to rewrite his existing gtkmm codes to make his programs portable with GLUT.&lt;/p&gt;
&lt;p&gt;Following gtkmm, the communication between objects in the library is provided by the signal-slot API of &lt;a href=&quot;http://libsigc.sourceforge.net/&quot;&gt;libsigc++&lt;/a&gt;. While libsigc++ is readily ported to a wide range of platforms, to minimize the prerequisites of gltk, a very limited, in-house substitute of libsigc++, under the same &lt;span class=&quot;geshifilter&quot;&gt;&lt;code class=&quot;text geshifilter-text&quot;&gt;sigc&lt;/code&gt;&lt;/span&gt; namespace, is provided in the header &lt;span class=&quot;geshifilter&quot;&gt;&lt;code class=&quot;text geshifilter-text&quot;&gt;sigc.hh&lt;/code&gt;&lt;/span&gt; with the aim of making it source-compatible with libsigc++. The users of the library may replace &lt;span class=&quot;geshifilter&quot;&gt;&lt;code class=&quot;text geshifilter-text&quot;&gt;sigc.hh&lt;/code&gt;&lt;/span&gt; with the real libsigc++ when it&#039;s available to gain flexibility and performance.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-field-tags field-type-taxonomy-term-reference field-label-above&quot;&gt;&lt;div class=&quot;field-label&quot;&gt;Tags:&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; rel=&quot;dc:subject&quot;&gt;&lt;a href=&quot;/taxonomy/term/4&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;gltk&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;field-item odd&quot; rel=&quot;dc:subject&quot;&gt;&lt;a href=&quot;/taxonomy/term/1&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;c++&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Thu, 15 Sep 2011 07:03:00 +0000</pubDate>
 <dc:creator>cjj</dc:creator>
 <guid isPermaLink="false">9 at https://www.ccdw.org</guid>
 <comments>https://www.ccdw.org/node/9#comments</comments>
</item>
<item>
 <title>Indent style for my C++ coding</title>
 <link>https://www.ccdw.org/node/4</link>
 <description>&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;I prefer to indent my code with TABs. Some people do not like that because a TAB can represent different amount of spaces in different editors or viewers. However, I like TABs for their semantic meaning of levels of grouping. How a code editor or viewer displays this grouping information should be left to the liking of its user. And, using two spaces (or four) is just wasting an extra character when we can just set the TAB size to 2 (or 4). I also favor compactness and readability. It&#039;s desirable to make the code visually shorter as long as it remains readable. Overly loose formatting can pose an obstacle to the concentration of thought just like that overly tight formatting can also trap and tangle the flow of thought.&lt;/p&gt;
&lt;p&gt;Following is a list of styling choices that I adopt for my C++ coding.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;One variable per line of declaration.&lt;/li&gt;
&lt;li&gt;Cuddle up &lt;strong&gt;while&lt;/strong&gt; but not &lt;strong&gt;else&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;No line break in the declaration of a function.&lt;/li&gt;
&lt;li&gt;No space between function name and parenthesized argument list.&lt;/li&gt;
&lt;li&gt;Colon &lt;strong&gt;:&lt;/strong&gt; is space-cuddled and each inheritance starts on a newline in a class definition.&lt;/li&gt;
&lt;li&gt;No space before comma &lt;strong&gt;,&lt;/strong&gt; or semicolon &lt;strong&gt;;&lt;/strong&gt;, after left parenthesis &lt;strong&gt;(&lt;/strong&gt;, and before right parenthesis &lt;strong&gt;)&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Comma &lt;strong&gt;,&lt;/strong&gt; and semicolon &lt;strong&gt;;&lt;/strong&gt; in &lt;strong&gt;for&lt;/strong&gt;-statement are spaced after.&lt;/li&gt;
&lt;li&gt;Left brace &lt;strong&gt;{&lt;/strong&gt; stands alone with the same level and on a newline for definitions of classes and functions.&lt;/li&gt;
&lt;li&gt;Left brace &lt;strong&gt;{&lt;/strong&gt; is space-cuddled and followed by a newline in a compound statement.&lt;/li&gt;
&lt;li&gt;Right parenthesis always starts on a newline.&lt;/li&gt;
&lt;li&gt;Colon &lt;strong&gt;:&lt;/strong&gt; is space-cuddled and each base and member constructor starts on a newline in a constructor definition.&lt;/li&gt;
&lt;li&gt;Labels are single-spaced to the left edge.&lt;/li&gt;
&lt;li&gt;Class sectioning (&lt;strong&gt;private:&lt;/strong&gt;, &lt;strong&gt;protected:&lt;/strong&gt;, and &lt;strong&gt;public:&lt;/strong&gt;) is on the same level as the class definition.&lt;/li&gt;
&lt;li&gt;Operators are spaced before and after with operands or parenthesized expressions.&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-field-tags field-type-taxonomy-term-reference field-label-above&quot;&gt;&lt;div class=&quot;field-label&quot;&gt;Tags:&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot;&gt;&lt;a href=&quot;/taxonomy/term/1&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;c++&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Sat, 20 Aug 2011 23:42:00 +0000</pubDate>
 <dc:creator>cjj</dc:creator>
 <guid isPermaLink="false">4 at https://www.ccdw.org</guid>
 <comments>https://www.ccdw.org/node/4#comments</comments>
</item>
<item>
 <title>the new C++ standard, multidisciplinary approach</title>
 <link>https://www.ccdw.org/node/3</link>
 <description>&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;C++0x was approved by ISO. It adds a great amount of new features to an already-rich language. This very fact has drawn some criticism. And, yet there are still unsatisfied demands for features.&lt;/p&gt;
&lt;p&gt;Just like natural languages facilitate thought and communication. Programming languages facilitate implementation of software models. An overly-rich tool places burden on the mastering of its domain but removes limitations on what models can be easily adopted to solve a problem. So, I think it&#039;s not a good news if you want to be a guru of the language. But, it is certainly nice if you have specific software problems to solve.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-field-tags field-type-taxonomy-term-reference field-label-above&quot;&gt;&lt;div class=&quot;field-label&quot;&gt;Tags:&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot;&gt;&lt;a href=&quot;/taxonomy/term/1&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;c++&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Tue, 16 Aug 2011 11:09:00 +0000</pubDate>
 <dc:creator>cjj</dc:creator>
 <guid isPermaLink="false">3 at https://www.ccdw.org</guid>
 <comments>https://www.ccdw.org/node/3#comments</comments>
</item>
</channel>
</rss>
