<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Auf Template Typ prüfen?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich kenne mich mit Templates (noch) überhaupt nicht aus:</p>
<p>da ich eine externe Library Funktion aufrufe muss ich wissen welcher Typ in meinem Template liegt um abhängig davon eine andere Funktion aufzurufen.</p>
<p>Kann ich irgendwie überprüfen ob in meinem Template z.B ein double liegt oder<br />
auch z.B eine eigens definierte structure?</p>
<p>Danke euch</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/188518/auf-template-typ-prüfen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 03:11:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/188518.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 01 Aug 2007 10:40:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Auf Template Typ prüfen? on Wed, 01 Aug 2007 10:40:24 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich kenne mich mit Templates (noch) überhaupt nicht aus:</p>
<p>da ich eine externe Library Funktion aufrufe muss ich wissen welcher Typ in meinem Template liegt um abhängig davon eine andere Funktion aufzurufen.</p>
<p>Kann ich irgendwie überprüfen ob in meinem Template z.B ein double liegt oder<br />
auch z.B eine eigens definierte structure?</p>
<p>Danke euch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1336407</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1336407</guid><dc:creator><![CDATA[Mati]]></dc:creator><pubDate>Wed, 01 Aug 2007 10:40:24 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Template Typ prüfen? on Wed, 01 Aug 2007 10:46:46 GMT]]></title><description><![CDATA[<p>Warum spezialisierst du nicht einfach für diese Typen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1336413</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1336413</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Wed, 01 Aug 2007 10:46:46 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Template Typ prüfen? on Wed, 01 Aug 2007 10:48:09 GMT]]></title><description><![CDATA[<p>Ich weiß leider nicht was du meinst - wäre nett wenn Du etwas genauer ausholen könntest?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1336414</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1336414</guid><dc:creator><![CDATA[Mati]]></dc:creator><pubDate>Wed, 01 Aug 2007 10:48:09 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Template Typ prüfen? on Wed, 01 Aug 2007 10:48:31 GMT]]></title><description><![CDATA[<p>Mit dem typeid() Operator und:</p>
<pre><code class="language-cpp">template&lt; typename T &gt;
struct foo
{ 
    typedef T value_type;
};
</code></pre>
<p>Dann kannst du über foo&lt; double &gt;::value_type über den übergebenen Typ Infos holen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1336415</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1336415</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Wed, 01 Aug 2007 10:48:31 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Template Typ prüfen? on Wed, 01 Aug 2007 10:49:48 GMT]]></title><description><![CDATA[<p>Du könntest eine Spezialisierung für das Template anlegen, die (anstelle einer allgemeinen Funktion) etwas speziell für dich zugeschnittenes aufruft:</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
void print(const T&amp; data)
{
  cout&lt;&lt;data;
}

template&lt;&gt;
void print(const double&amp; data)
{
  cout&lt;&lt;setprecision(2)&lt;&lt;scientific&lt;&lt;data;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1336417</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1336417</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 01 Aug 2007 10:49:48 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Template Typ prüfen? on Wed, 01 Aug 2007 12:40:45 GMT]]></title><description><![CDATA[<p>Mati schrieb:</p>
<blockquote>
<p>Hallo,</p>
<p>ich kenne mich mit Templates (noch) überhaupt nicht aus:...</p>
</blockquote>
<p>Nur mal so ins Blaue geschossen: Weißt Du, dass templates zur Compilezeit umgesetzt werden ? Das ist etwas Anderes als &quot;Polymorphie durch Vererbung&quot;, &quot;RTTI&quot; (RunTimeTypeInformation), typeid(), ....</p>
<p>Der Vorteil ist eben, dass Du &quot;Spezialisierungen&quot; schreiben kannst - also festlegen, wie sich Dein template für bestimmte Typen verhalten soll - und der Compiler für Dich überprüft, ob alles passt. Da bedeutet, Du stellst es nicht erst zur Laufzeit fest, sondern schon vorher.</p>
<p>Gleichzeitig ist es aber dann aber eben auch zur Laufzeit bereits festgelegt und nicht mehr änderbar.....</p>
<p>Konkretes Beispiel:</p>
<pre><code class="language-cpp">//fremdlib.h
void mach_was_mit_char(char c);
void mach_was_mit_long(long l);
void mach_was_mit_int(int i);
</code></pre>
<p>(fände ich zwar schlecht ein solches Design, aber hier mal als Beispiel genommen)</p>
<p>Dein Zeug:</p>
<pre><code class="language-cpp">//meinZeug.h
template &lt;typename T&gt;
struct meinZeug {
   T x;
   void mach_was(); // generelle Funktion
};

// Spezialisierungen
template &lt;&gt;
void meinZeug&lt;char&gt;::mach_was() { mach_was_mit_char(x); }

template &lt;&gt;
void meinZeug&lt;long&gt;::mach_was() { mach_was_mit_long(x); }

template &lt;&gt;
void meinZeug&lt;int&gt;::mach_was() { mach_was_mit_int(x); }
</code></pre>
<p>Genutzt wird's so:</p>
<pre><code class="language-cpp">int main() {
   meinZeug&lt;char&gt; c;
   c.machwas(); // funktioniert ! Ruft meinZeug&lt;char&gt;::mach_was() -&gt; mach_was_mit_char() auf

   meinZeug&lt;int&gt; i; 
   i.mach_was(); // funktioniert ! Ruft meinZeug&lt;int&gt;::mach_was() -&gt; mach_was_mit_int() auf

   meinZeug&lt;double&gt; d; // ist erlaubt !! Solange nicht mach_was() aufgerufen wird

   meinZeug&lt;string&gt; s;
   s.mach_was(); // FEHLER -&gt; meinZeug&lt;string&gt;::mach_was() wird nicht gefunden

...
</code></pre>
<p>Ergo: Du brauchst gar nicht zu prüfen/wissen, &quot;welchen Typ mein template hat&quot;, sondern sagst, wie es sich für die von Dir gewünschten Typen verhalten soll und der Compiler wird Dir schon sagen, wenn ein &quot;ungewünschter Typ&quot; verwendet wurde.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1336503</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1336503</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 01 Aug 2007 12:40:45 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Template Typ prüfen? on Wed, 01 Aug 2007 12:40:48 GMT]]></title><description><![CDATA[<p>Mati schrieb:</p>
<blockquote>
<p>Hallo,</p>
<p>ich kenne mich mit Templates (noch) überhaupt nicht aus:</p>
<p>da ich eine externe Library Funktion aufrufe muss ich wissen welcher Typ in meinem Template liegt um abhängig davon eine andere Funktion aufzurufen.</p>
<p>Kann ich irgendwie überprüfen ob in meinem Template z.B ein double liegt oder<br />
auch z.B eine eigens definierte structure?</p>
<p>Danke euch</p>
</blockquote>
<p><a href="http://c-plusplus.net/forum/viewtopic-var-p-is-1323449.html" rel="nofollow">http://c-plusplus.net/forum/viewtopic-var-p-is-1323449.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1336512</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1336512</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 01 Aug 2007 12:40:48 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Template Typ prüfen? on Wed, 01 Aug 2007 12:49:09 GMT]]></title><description><![CDATA[<p>KasF schrieb:</p>
<blockquote>
<p>...<br />
<a href="http://c-plusplus.net/forum/viewtopic-var-p-is-1323449.html" rel="nofollow">http://c-plusplus.net/forum/viewtopic-var-p-is-1323449.html</a></p>
</blockquote>
<p>Ist der hier nicht ein wenig oversized ?<br />
Ich glaube, der Link führt zu einer Diskussion von Problemen, die Mati noch gar nicht hat. Es geht im (wenn ich ihn recht verstanden habe) um das &quot;Herausfinden eines konkreten Typs&quot; und weniger um &quot;Typeigenschaften&quot;.</p>
<p>Nichtsdestotrotz ein interessanter Thread.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1336523</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1336523</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 01 Aug 2007 12:49:09 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Template Typ prüfen? on Wed, 01 Aug 2007 13:00:46 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<p>KasF schrieb:</p>
<blockquote>
<p>...<br />
<a href="http://c-plusplus.net/forum/viewtopic-var-p-is-1323449.html" rel="nofollow">http://c-plusplus.net/forum/viewtopic-var-p-is-1323449.html</a></p>
</blockquote>
<p>Ist der hier nicht ein wenig oversized ?<br />
Ich glaube, der Link führt zu einer Diskussion von Problemen, die Mati noch gar nicht hat. Es geht im (wenn ich ihn recht verstanden habe) um das &quot;Herausfinden eines konkreten Typs&quot; und weniger um &quot;Typeigenschaften&quot;.</p>
</blockquote>
<p>Mati schrieb:</p>
<blockquote>
<p>Kann ich irgendwie überprüfen ob in meinem Template z.B ein double liegt oder<br />
auch z.B eine eigens definierte structure?</p>
</blockquote>
<p>Für sein double reicht doch ein einfaches:</p>
<pre><code class="language-cpp">template&lt;class T&gt;
struct IsDouble {

    enum { result = false };
};

template&lt;&gt;
struct IsDouble&lt;double&gt; {

    enum { result = true };
};

template&lt;class T&gt;
void myfunc(t val) 
{
   if(isDouble&lt;T&gt;::result) { }
   else ...
}
</code></pre>
<p>Für sein eigenes struct ein:</p>
<pre><code class="language-cpp">struct MyStructType { };

struct MyStruct {
   typename MyStructType type;
};

template&lt;class T&gt;
void myfunc(T val) 
{
   if(typeId(typename T::type) == typeID(MyStructType) ) { }
   else ...
}

//oder um typeId zu vermeiden entsprechend überladen und anhand des Types die //richtige Funktion auswählen lassen.
</code></pre>
<p>Was ist daran oversized ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1336541</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1336541</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 01 Aug 2007 13:00:46 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Template Typ prüfen? on Wed, 01 Aug 2007 13:23:36 GMT]]></title><description><![CDATA[<p>Hi KasF,</p>
<p>ich meinte nicht unbedingt, dass die dort vorgestellten Ansätze oversized sind, sondern der Thread an sich.</p>
<p>Die von Dir angegebene &quot;Lösung&quot; ist IMO allerdings trotzdem &quot;oversized&quot;, weil ich glaube, dass Mati ein typisches &quot;Anfängerproblem&quot; hier hat: Er möchte Problem A lösen, stellt sich Lösung X vor und hat bei der Umsetzung Problem B.<br />
Nun fragt er nach einer Lösung für B, dabei gibt es eine viel bessere Lösung für A.</p>
<p>Ist lustigerweise ja eigentlich der typische Werdegang bei Threads mit dem Titel &quot;Wie bekomme ich den Typ raus ?&quot;<br />
In den allerseltensten Fällen ist eine Typbestimmung wirklich die geeigente Lösung...</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1336548</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1336548</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 01 Aug 2007 13:23:36 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Template Typ prüfen? on Wed, 01 Aug 2007 13:39:45 GMT]]></title><description><![CDATA[<p>Ja schon möglich. Warten wir eben ab was Mati genau will.</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1336566</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1336566</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 01 Aug 2007 13:39:45 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Template Typ prüfen? on Wed, 01 Aug 2007 13:47:50 GMT]]></title><description><![CDATA[<p>KasF schrieb:</p>
<blockquote>
<p>Ja schon möglich. Warten wir eben ab was Mati genau will.</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
</blockquote>
<p>Naja, er schrieb halt:</p>
<p>Mati schrieb:</p>
<blockquote>
<p>...<br />
da ich eine externe Library Funktion aufrufe muss ich wissen welcher Typ in meinem Template liegt um abhängig davon eine andere Funktion aufzurufen....</p>
</blockquote>
<p>... und da scheint mir eine Spezialisierung das bessere Mittel zu sein.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1336575</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1336575</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 01 Aug 2007 13:47:50 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Template Typ prüfen? on Wed, 01 Aug 2007 13:54:06 GMT]]></title><description><![CDATA[<p>Danke euch für eure rege Hilfe!</p>
<p>Also vielleicht sollte ich genauer werden:</p>
<pre><code class="language-cpp">struct complex{
     int r;
     ind i;
};

lib_fkt1(double* arr);
lib_fkt2(complex arr2)

//Und jetzt habe ich ein template array 
//welches je nach input entweder aus nur double werten besteht oder eben
//aus complex structs-elementen.

//Und da die lib-funktionen jetzt eben je nach input anders aufgerufen werden //müssen dachte ich ich teste auf den typ um dann mit if / else zu verzweigen.
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1336586</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1336586</guid><dc:creator><![CDATA[Mati]]></dc:creator><pubDate>Wed, 01 Aug 2007 13:54:06 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Template Typ prüfen? on Wed, 01 Aug 2007 14:06:08 GMT]]></title><description><![CDATA[<p>Dein Template Array befindet sich vermutlich in einer Funktion oder in einer Klasse.<br />
Das ganze zu spezialisieren würde dazu führen das man den Code doppelt schreiben müsste, wenn man den Code nicht gut in verschiedene Teilebereiche ausgelagert haben sollte.</p>
<p>Ich würde in diesem Fall sowas vorziehen:</p>
<pre><code class="language-cpp">lib_fkt(double* arr)
{
   lib_fkt1(arr);
}

lib_fkt(complex* arr)
{
   lib_fkt2(arr);
}

//....
T array[20];
lib_fkt(array);
</code></pre>
<p>Edit: Achja Simon hattest recht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1336597</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1336597</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 01 Aug 2007 14:06:08 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Template Typ prüfen? on Wed, 01 Aug 2007 14:14:01 GMT]]></title><description><![CDATA[<p>Mati schrieb:</p>
<blockquote>
<p>Danke euch für eure rege Hilfe!</p>
<p>Also vielleicht sollte ich genauer werden:</p>
<pre><code class="language-cpp">struct complex{
     int r;
     ind i;
};

lib_fkt1(double* arr);
lib_fkt2(complex arr2)

//Und jetzt habe ich ein template array 
//welches je nach input entweder aus nur double werten besteht oder eben
//aus complex structs-elementen.

//Und da die lib-funktionen jetzt eben je nach input anders aufgerufen werden //müssen dachte ich ich teste auf den typ um dann mit if / else zu verzweigen.
</code></pre>
</blockquote>
<p>(BTW: lib_fkt1/2 sollten auch return types haben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> )<br />
(BTW2: ich gehe mal davon aus, dass bei lib_fkt2(complex) ein '*' fehlt)</p>
<p>Da kannst Du doch prima mein voriges Beispiel drauf anwenden:</p>
<pre><code class="language-cpp">template &lt;typename T&gt;
struct meinArray {
   T arr[10];
   void lib_fkt();
};

template &lt;&gt;
void meinArray&lt;double&gt;lib_fkt() { lib_fkt1(arr); }

template &lt;&gt;
void meinArray&lt;complex&gt;lib_fkt() { lib_fkt2(arr); }
</code></pre>
<p>Wenn die lib overloading nutzen würde (sprich: lib_fkt1/2 denselben Namen hätten), könnte man sich das Ganze sparen:</p>
<pre><code class="language-cpp">void lib_fkt(double* arr);
void lib_fkt(complex* arr);

template &lt;typename T&gt;
struct meinArray {
   T arr[10];
};

int main() {
   meinArray&lt;double&gt; d;
   lib_fkt(d.arr);

   meinArray&lt;complex&gt; c;
   lib_fkt(c.arr);

   ...
</code></pre>
<p>Gruß,</p>
<p>Simon2.</p>
<p>P.S.: KasFs Variante, die unterschiede in eigenen Overloads zu verstecken, ist aber auch gut.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1336604</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1336604</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 01 Aug 2007 14:14:01 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Template Typ prüfen? on Wed, 01 Aug 2007 20:45:22 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13624">@Simon2</a>: man kann sich die Overloads auch selbst basteln, dann kann man sich die Template-Spezialisierungs-Dings auch sparen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<pre><code class="language-cpp">void lib_fun1(lala* l);
void lib_fun2(int* i);

inline void lib_fun(lala* l)
{
    return lib_fun1(l);
}

inline void lib_fun(int* i)
{
    return lib_fun2(i);
}

// und nu einfach lib_fun(T*) verwenden...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1336856</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1336856</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 01 Aug 2007 20:45:22 GMT</pubDate></item><item><title><![CDATA[Reply to Auf Template Typ prüfen? on Wed, 01 Aug 2007 20:57:10 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13624">@Simon2</a>: man kann sich die Overloads auch selbst basteln, ...</p>
</blockquote>
<p>Meinst Du so wie KasF es oben schon gezeigt hat ? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Meine &quot;Spezialisierungsvariante&quot; habe ich noch gezeigt, weil diese Technik sie vorhier angesprochen wurde und ich davon ausging, dass Mati evtl. noch komplexere Dinge in seiner/m Klasse/ntemplate abbilden will als nur das Array.</p>
<p>Außerdem ist Spezialisierung eine schöne Technik, die man ruhig mal gesehen haben darf, wenn man mit templates anfängt und rumprobiert.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1336862</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1336862</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 01 Aug 2007 20:57:10 GMT</pubDate></item></channel></rss>