<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Concepts for C++</title>
	<atom:link href="http://blog.misto.ch/archives/1289/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.misto.ch/archives/1289</link>
	<description>blog über mich und interessante dinge aus dem alltag. oft auch etwas aus der informatik</description>
	<lastBuildDate>Sat, 15 Aug 2009 13:15:07 +0200</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Rolf F.</title>
		<link>http://blog.misto.ch/archives/1289/comment-page-1#comment-99094</link>
		<dc:creator>Rolf F.</dc:creator>
		<pubDate>Sun, 31 May 2009 20:33:48 +0000</pubDate>
		<guid isPermaLink="false">http://blog.misto.ch/?p=1289#comment-99094</guid>
		<description>DIe Roadmap von C# sieht auch immer mehr dynamische Möglichkeiten vor (z.B. dynamic methods in C# 4.0), aber wer weiss, ob sowas dann nicht kontraproduktiv ist und die Sprache &quot;zur Sau&quot; macht, so quasi, wie das mit C zu C++ über die Jahre hinweg passiert ist. In C# 1 gab es keine Generics und ich habe drüber geflucht, dass es erst zur Laufzeit so viele Cast-Exceptions gab. Mit Dynamic Methods könnte sowas wieder passieren... Da muss den Entwicklern wieder auf die Finger geklopft werden, falls sie diese Möglichkeit missbrauchen :)</description>
		<content:encoded><![CDATA[<p>DIe Roadmap von C# sieht auch immer mehr dynamische Möglichkeiten vor (z.B. dynamic methods in C# 4.0), aber wer weiss, ob sowas dann nicht kontraproduktiv ist und die Sprache &#8220;zur Sau&#8221; macht, so quasi, wie das mit C zu C++ über die Jahre hinweg passiert ist. In C# 1 gab es keine Generics und ich habe drüber geflucht, dass es erst zur Laufzeit so viele Cast-Exceptions gab. Mit Dynamic Methods könnte sowas wieder passieren&#8230; Da muss den Entwicklern wieder auf die Finger geklopft werden, falls sie diese Möglichkeit missbrauchen <img src='http://blog.misto.ch/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: misto</title>
		<link>http://blog.misto.ch/archives/1289/comment-page-1#comment-99090</link>
		<dc:creator>misto</dc:creator>
		<pubDate>Sun, 31 May 2009 18:14:22 +0000</pubDate>
		<guid isPermaLink="false">http://blog.misto.ch/?p=1289#comment-99090</guid>
		<description>Klar, du kannst beliebige member functions, free functions, Konstruktoren, etc. voraussetzen. Die ganze Standard-Library wird auch umgebaut werden um Concepts zu benutzen. Der User merkt vielleicht gar nicht viel davon, ausser dass die Fehlermeldungen mit Templates nun endlich lesbar sind :-)

Ruby und C# zu vergleichen ist aber nicht sehr fair :-) dynamische Typisierung macht vieles sehr viel einfacher, man kann sich aber auch schnell in den Fuss schiessen, wenn man nicht aufpasst.</description>
		<content:encoded><![CDATA[<p>Klar, du kannst beliebige member functions, free functions, Konstruktoren, etc. voraussetzen. Die ganze Standard-Library wird auch umgebaut werden um Concepts zu benutzen. Der User merkt vielleicht gar nicht viel davon, ausser dass die Fehlermeldungen mit Templates nun endlich lesbar sind <img src='http://blog.misto.ch/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Ruby und C# zu vergleichen ist aber nicht sehr fair <img src='http://blog.misto.ch/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  dynamische Typisierung macht vieles sehr viel einfacher, man kann sich aber auch schnell in den Fuss schiessen, wenn man nicht aufpasst.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rolf F.</title>
		<link>http://blog.misto.ch/archives/1289/comment-page-1#comment-99083</link>
		<dc:creator>Rolf F.</dc:creator>
		<pubDate>Sun, 31 May 2009 13:36:04 +0000</pubDate>
		<guid isPermaLink="false">http://blog.misto.ch/?p=1289#comment-99083</guid>
		<description>Ok, das mit dem 3rd Party Nachimplementieren ist ein guter Punkt. Evt., wenn nicht sealed, würde ich halt davon ableiten und damit das Interface nachimplementieren, aber machmal ist das keine Option. Kann man mit C++ Concepts auch mehrere Methoden voraussetzen? 
Das mit den Operatoren kann sein, war für mich aber bis jetzt nie ein Problem. Brauchte aber auch nicht viel Mathe :)
Wenn C# ihre Extension Methods endlich mal so ausbaut, dass man nicht nur Methoden, sondern auch properties, static methods/properties und interfaces im nachhinein dazuimplementieren könnte, wäre sowas auch kein Problem mehr. Ruby kann das recht elegant (auch ein Interface in einer bestehenden Klasse nachimplementieren?)</description>
		<content:encoded><![CDATA[<p>Ok, das mit dem 3rd Party Nachimplementieren ist ein guter Punkt. Evt., wenn nicht sealed, würde ich halt davon ableiten und damit das Interface nachimplementieren, aber machmal ist das keine Option. Kann man mit C++ Concepts auch mehrere Methoden voraussetzen?<br />
Das mit den Operatoren kann sein, war für mich aber bis jetzt nie ein Problem. Brauchte aber auch nicht viel Mathe <img src='http://blog.misto.ch/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Wenn C# ihre Extension Methods endlich mal so ausbaut, dass man nicht nur Methoden, sondern auch properties, static methods/properties und interfaces im nachhinein dazuimplementieren könnte, wäre sowas auch kein Problem mehr. Ruby kann das recht elegant (auch ein Interface in einer bestehenden Klasse nachimplementieren?)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: misto</title>
		<link>http://blog.misto.ch/archives/1289/comment-page-1#comment-99079</link>
		<dc:creator>misto</dc:creator>
		<pubDate>Sun, 31 May 2009 10:59:55 +0000</pubDate>
		<guid isPermaLink="false">http://blog.misto.ch/?p=1289#comment-99079</guid>
		<description>Wenn T eben nicht IComparable implementiert, dann kann ich es in einer Concept Map nachimplementieren, ohne dass ich T selbst anpassen muss. Und das kann ja durchaus vorkommen, wenn T aus einer Library kommt und mit einer anderen Library zusammenarbeiten soll.

Ausserdem funktioniert where in C# nur umständlich mit operatoren, glaube ich mal gelesen zu haben.</description>
		<content:encoded><![CDATA[<p>Wenn T eben nicht IComparable implementiert, dann kann ich es in einer Concept Map nachimplementieren, ohne dass ich T selbst anpassen muss. Und das kann ja durchaus vorkommen, wenn T aus einer Library kommt und mit einer anderen Library zusammenarbeiten soll.</p>
<p>Ausserdem funktioniert where in C# nur umständlich mit operatoren, glaube ich mal gelesen zu haben.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rolf F.</title>
		<link>http://blog.misto.ch/archives/1289/comment-page-1#comment-99028</link>
		<dc:creator>Rolf F.</dc:creator>
		<pubDate>Fri, 29 May 2009 19:47:35 +0000</pubDate>
		<guid isPermaLink="false">http://blog.misto.ch/?p=1289#comment-99028</guid>
		<description>T muss IComparable implementieren, sonst gibt es einen Compilerfehler. Das mit dem Nachimplementieren in C++ schnall ich nicht ganz...?
Das letzte Projekt war nur in C#, das neue ist gemischt. VoIP Teil in C++, der Rest in C#.</description>
		<content:encoded><![CDATA[<p>T muss IComparable implementieren, sonst gibt es einen Compilerfehler. Das mit dem Nachimplementieren in C++ schnall ich nicht ganz&#8230;?<br />
Das letzte Projekt war nur in C#, das neue ist gemischt. VoIP Teil in C++, der Rest in C#.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: misto</title>
		<link>http://blog.misto.ch/archives/1289/comment-page-1#comment-99015</link>
		<dc:creator>misto</dc:creator>
		<pubDate>Fri, 29 May 2009 11:23:50 +0000</pubDate>
		<guid isPermaLink="false">http://blog.misto.ch/?p=1289#comment-99015</guid>
		<description>Sali Rolf!

Ja du hast das richtig erfasst. In deinem Beispiel, was ist, wenn die Klasse das Interface nicht implementiert? Mit Concepts ist das kein Problem, du kannst auch fehlende Funktionen nachimplementieren.

Könnte den C# Teil natürlich schon noch ausbauen, aber was ich ja gesagt habe ist, dass C# wie Java eben auch auf Interfaces baut.

Dann programmierst du unterdessen kein C++ sondern C#?</description>
		<content:encoded><![CDATA[<p>Sali Rolf!</p>
<p>Ja du hast das richtig erfasst. In deinem Beispiel, was ist, wenn die Klasse das Interface nicht implementiert? Mit Concepts ist das kein Problem, du kannst auch fehlende Funktionen nachimplementieren.</p>
<p>Könnte den C# Teil natürlich schon noch ausbauen, aber was ich ja gesagt habe ist, dass C# wie Java eben auch auf Interfaces baut.</p>
<p>Dann programmierst du unterdessen kein C++ sondern C#?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rolf F.</title>
		<link>http://blog.misto.ch/archives/1289/comment-page-1#comment-99008</link>
		<dc:creator>Rolf F.</dc:creator>
		<pubDate>Fri, 29 May 2009 06:52:34 +0000</pubDate>
		<guid isPermaLink="false">http://blog.misto.ch/?p=1289#comment-99008</guid>
		<description>Ich habe das ganze Paper schnell in 5min überflogen, also hängt mich nicht auf, wenn ich was nicht ganz verstanden habe. Soeweit ich das sehe, kann mit den C++ concepts voreausgesetzt werden das T eine bestimmte Methode hat? Du hast ja ein Vergleich zu Java und C# gemacht. Vielleicht sollte man kurz erwähnen, dass es in C# auch das keyword &quot;where&quot; gibt. Will man mit Generics also zwei Objekte vergleichen können, könnte die Generics Klasse/Methode auch wie folgt deklariert werden:

	public class XY where T : IComparable
	{

	}

womit T IComparable Unterstützung hat....
Wäre statt auf Methodenebene halt auf Klassen/Interface Ebene, was oft nicht schlechter ist:)
Ich bin jedenfalls froh, mich weniger mit C++ Templates herumschlagen zu müssen. C# Generics finde ich recht gut und ab C# 4.0 mit contravariance in Interfaces und Delegates (hoffe ich habe das richtig in Erinnerung)

Gruss
Rolf</description>
		<content:encoded><![CDATA[<p>Ich habe das ganze Paper schnell in 5min überflogen, also hängt mich nicht auf, wenn ich was nicht ganz verstanden habe. Soeweit ich das sehe, kann mit den C++ concepts voreausgesetzt werden das T eine bestimmte Methode hat? Du hast ja ein Vergleich zu Java und C# gemacht. Vielleicht sollte man kurz erwähnen, dass es in C# auch das keyword &#8220;where&#8221; gibt. Will man mit Generics also zwei Objekte vergleichen können, könnte die Generics Klasse/Methode auch wie folgt deklariert werden:</p>
<p>	public class XY where T : IComparable<br />
	{</p>
<p>	}</p>
<p>womit T IComparable Unterstützung hat&#8230;.<br />
Wäre statt auf Methodenebene halt auf Klassen/Interface Ebene, was oft nicht schlechter ist:)<br />
Ich bin jedenfalls froh, mich weniger mit C++ Templates herumschlagen zu müssen. C# Generics finde ich recht gut und ab C# 4.0 mit contravariance in Interfaces und Delegates (hoffe ich habe das richtig in Erinnerung)</p>
<p>Gruss<br />
Rolf</p>
]]></content:encoded>
	</item>
</channel>
</rss>
