<?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/">
	<channel>
		<title><![CDATA[MISRA Discussion Forums - 6.14 Templates (C++)]]></title>
		<link>https://forum.misra.org.uk/</link>
		<description><![CDATA[MISRA Discussion Forums - https://forum.misra.org.uk]]></description>
		<pubDate>Thu, 05 Nov 2026 15:12:49 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Rul1 14-7-1 and explicit class instantiation]]></title>
			<link>https://forum.misra.org.uk/showthread.php?tid=1658</link>
			<pubDate>Wed, 30 Aug 2023 06:58:13 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.misra.org.uk/member.php?action=profile&uid=5807">mstaron</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.misra.org.uk/showthread.php?tid=1658</guid>
			<description><![CDATA[Does this rule should detect functions in template classes, that have no instances, but the class is explicitly instantiated?<br />
In this case member functions are instantiated accordingly to the C++ standard:<br />
<br />
<blockquote class="mycode_quote"><cite>Quote:</cite>8 An explicit instantiation that names a class template specialization is also an explicit instantiation of the<br />
same kind (declaration or definition) of each of its members (not including members inherited from base<br />
classes and members that are templates) that has not been previously explicitly specialized in the translation<br />
unit containing the explicit instantiation, except as described below. [ Note: In addition, it will typically be<br />
an explicit instantiation of certain implementation-dependent data about the class. —end note ]<br />
9 An explicit instantiation definition that names a class template specialization explicitly instantiates the class<br />
template specialization and is an explicit instantiation definition of only those members that have been<br />
defined at the point of instantiation.</blockquote>
but these functions are never used.<br />
<br />
Example:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>template &lt;typename T&gt;<br />
class Temp {<br />
    public:<br />
    void f1(){}  // Compliant?<br />
    void f2(){}  // Compliant?<br />
};<br />
<br />
template class Temp&lt;int&gt;;</code></div></div>]]></description>
			<content:encoded><![CDATA[Does this rule should detect functions in template classes, that have no instances, but the class is explicitly instantiated?<br />
In this case member functions are instantiated accordingly to the C++ standard:<br />
<br />
<blockquote class="mycode_quote"><cite>Quote:</cite>8 An explicit instantiation that names a class template specialization is also an explicit instantiation of the<br />
same kind (declaration or definition) of each of its members (not including members inherited from base<br />
classes and members that are templates) that has not been previously explicitly specialized in the translation<br />
unit containing the explicit instantiation, except as described below. [ Note: In addition, it will typically be<br />
an explicit instantiation of certain implementation-dependent data about the class. —end note ]<br />
9 An explicit instantiation definition that names a class template specialization explicitly instantiates the class<br />
template specialization and is an explicit instantiation definition of only those members that have been<br />
defined at the point of instantiation.</blockquote>
but these functions are never used.<br />
<br />
Example:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>template &lt;typename T&gt;<br />
class Temp {<br />
    public:<br />
    void f1(){}  // Compliant?<br />
    void f2(){}  // Compliant?<br />
};<br />
<br />
template class Temp&lt;int&gt;;</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Rule 14-7-1 and templates that must be specialized]]></title>
			<link>https://forum.misra.org.uk/showthread.php?tid=1619</link>
			<pubDate>Fri, 29 Apr 2022 22:25:57 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.misra.org.uk/member.php?action=profile&uid=5396">chgros</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.misra.org.uk/showthread.php?tid=1619</guid>
			<description><![CDATA[One of our clients is using code like this:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>template&lt;bool b&gt; SomeClass;<br />
<br />
template &lt;&gt; SomeClass&lt;true&gt; {<br />
  void foo();<br />
};<br />
SomeClass&lt;true&gt; s;</code></div></div><br />
We report a 14-7-1 defect, as non-specialized SomeClass is never instantiated.<br />
They're complaining it's a false positive. Could we get a ruling? Arguably the explicit specialization and the non-specialization are different classes, and to be compliant both should be instantiated. On the other hand, this might be a reasonable thing to do if e.g. the goal is to prevent the code from working with &lt;false&gt; (note: I'm only guessing at the goal. The example from the customer doesn't go much further than this)<br />
Do you have any guidance?]]></description>
			<content:encoded><![CDATA[One of our clients is using code like this:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>template&lt;bool b&gt; SomeClass;<br />
<br />
template &lt;&gt; SomeClass&lt;true&gt; {<br />
  void foo();<br />
};<br />
SomeClass&lt;true&gt; s;</code></div></div><br />
We report a 14-7-1 defect, as non-specialized SomeClass is never instantiated.<br />
They're complaining it's a false positive. Could we get a ruling? Arguably the explicit specialization and the non-specialization are different classes, and to be compliant both should be instantiated. On the other hand, this might be a reasonable thing to do if e.g. the goal is to prevent the code from working with &lt;false&gt; (note: I'm only guessing at the goal. The example from the customer doesn't go much further than this)<br />
Do you have any guidance?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Rule 14â€“7â€“3 Example errata?]]></title>
			<link>https://forum.misra.org.uk/showthread.php?tid=939</link>
			<pubDate>Thu, 07 Feb 2013 23:58:10 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.misra.org.uk/member.php?action=profile&uid=2439">minhyuk</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.misra.org.uk/showthread.php?tid=939</guid>
			<description><![CDATA[See 14-7-3 Example:<br />
<br />
a function template specialization for good_tmp1 violated ODR in tmp1.cc.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>// tmp1.h<br />
template&nbsp;&nbsp;void good_tmp1 ( ) { }<br />
<br />
// tmp1.cc<br />
#include "tmp1.h"<br />
template&nbsp;&nbsp;void good_tmp1 ( ) { }</code></div></div><br />
I think function template specialization must be forward declaration in header file.<br />
any reason for that?<br />
<br />
Best Regards, <br />
Minhyuk Kwon@Suresoft technologies Incs.]]></description>
			<content:encoded><![CDATA[See 14-7-3 Example:<br />
<br />
a function template specialization for good_tmp1 violated ODR in tmp1.cc.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>// tmp1.h<br />
template&nbsp;&nbsp;void good_tmp1 ( ) { }<br />
<br />
// tmp1.cc<br />
#include "tmp1.h"<br />
template&nbsp;&nbsp;void good_tmp1 ( ) { }</code></div></div><br />
I think function template specialization must be forward declaration in header file.<br />
any reason for that?<br />
<br />
Best Regards, <br />
Minhyuk Kwon@Suresoft technologies Incs.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Problems with Rule 14â€“6â€“2]]></title>
			<link>https://forum.misra.org.uk/showthread.php?tid=549</link>
			<pubDate>Wed, 09 Jul 2008 20:30:23 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.misra.org.uk/member.php?action=profile&uid=624">James Widman</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.misra.org.uk/showthread.php?tid=549</guid>
			<description><![CDATA[Hi all,<br />
<br />
The second example in 14â€“6â€“2 is:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>template&nbsp;&nbsp;<br />
void f ( T const &amp; t ) <br />
{ <br />
&nbsp;&nbsp; t == t;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Non-compliant - Calls NS::operator== <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // declared after f <br />
&nbsp;&nbsp; ::operator ==( t, t );&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Compliant - Calls built-in operator== <br />
&nbsp;&nbsp; ( operator ==&nbsp;&nbsp;) ( t, t ); // Compliant - Calls built-in operator== <br />
} <br />
<br />
namespace NS <br />
{ <br />
&nbsp;&nbsp; struct A <br />
&nbsp;&nbsp; { <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;operator int32_t ( ) const; <br />
&nbsp;&nbsp; }; <br />
&nbsp;&nbsp; bool operator== ( A const &amp;, A const &amp; ); <br />
} <br />
<br />
int main ( ) <br />
{ <br />
&nbsp;&nbsp; NS::A a; <br />
&nbsp;&nbsp; f ( a ); <br />
}</code></div></div>One problem is that the expression '::operator==(t,t)' renders the program ill-formed at template definition time (which means that, if your compiler conforms to ISO C++ 2003, it will issue an error at template definition time and refuse to generate code).  This is given by ISO C++ in 14.6 temp.res, which contains this bit of normative text:<br />
<blockquote class="mycode_quote"><cite>Quote:</cite>If a name does not depend on a template-parameter (as defined in 14.6.2), a declaration (or set of declarations) for that name shall be in scope at the point where the name appears in the template definition; the name is bound to the declaration (or declarations) found at that point and this binding is not affected by declarations that are visible at the point of instantiation.</blockquote>
Because of the way 'operator==' is written, we know that it is not a dependent name.  So unqualified name lookup searches for 'operator==' and finds nothing because there is no declaration of that operator before f (either in this example or in the previous example).  So the program is ill-formed (diagnostic required).<br />
<br />
Likewise, 'operator==' would also render the program ill-formed (if it were not ill-formed already) because there is no operator== template in scope, so the ']]></description>
			<content:encoded><![CDATA[Hi all,<br />
<br />
The second example in 14â€“6â€“2 is:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>template&nbsp;&nbsp;<br />
void f ( T const &amp; t ) <br />
{ <br />
&nbsp;&nbsp; t == t;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Non-compliant - Calls NS::operator== <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // declared after f <br />
&nbsp;&nbsp; ::operator ==( t, t );&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Compliant - Calls built-in operator== <br />
&nbsp;&nbsp; ( operator ==&nbsp;&nbsp;) ( t, t ); // Compliant - Calls built-in operator== <br />
} <br />
<br />
namespace NS <br />
{ <br />
&nbsp;&nbsp; struct A <br />
&nbsp;&nbsp; { <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;operator int32_t ( ) const; <br />
&nbsp;&nbsp; }; <br />
&nbsp;&nbsp; bool operator== ( A const &amp;, A const &amp; ); <br />
} <br />
<br />
int main ( ) <br />
{ <br />
&nbsp;&nbsp; NS::A a; <br />
&nbsp;&nbsp; f ( a ); <br />
}</code></div></div>One problem is that the expression '::operator==(t,t)' renders the program ill-formed at template definition time (which means that, if your compiler conforms to ISO C++ 2003, it will issue an error at template definition time and refuse to generate code).  This is given by ISO C++ in 14.6 temp.res, which contains this bit of normative text:<br />
<blockquote class="mycode_quote"><cite>Quote:</cite>If a name does not depend on a template-parameter (as defined in 14.6.2), a declaration (or set of declarations) for that name shall be in scope at the point where the name appears in the template definition; the name is bound to the declaration (or declarations) found at that point and this binding is not affected by declarations that are visible at the point of instantiation.</blockquote>
Because of the way 'operator==' is written, we know that it is not a dependent name.  So unqualified name lookup searches for 'operator==' and finds nothing because there is no declaration of that operator before f (either in this example or in the previous example).  So the program is ill-formed (diagnostic required).<br />
<br />
Likewise, 'operator==' would also render the program ill-formed (if it were not ill-formed already) because there is no operator== template in scope, so the ']]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Rule 14â€“8â€“1 and dissimilar overloaded templates]]></title>
			<link>https://forum.misra.org.uk/showthread.php?tid=545</link>
			<pubDate>Thu, 03 Jul 2008 23:15:48 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.misra.org.uk/member.php?action=profile&uid=624">James Widman</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.misra.org.uk/showthread.php?tid=545</guid>
			<description><![CDATA[Hi all,<br />
<br />
I suspect that the net cast by rule 14â€“8â€“1 is too wide.  For example, I don't think it's helpful to label the following as "non-compliant":<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>template&nbsp;&nbsp;void f ( T );&nbsp;&nbsp;// #1<br />
template&nbsp;&nbsp;void f ( T*, T ); // #2<br />
<br />
template&nbsp;&nbsp;void f ( int32_t* ); // non-compliant with 14â€“8â€“1</code></div></div><br />
In this case, the specialization of #1 cannot get you into trouble.<br />
<br />
In the actual example given for 14â€“8â€“1, it is helpful to claim that the specialization is suspect because there is another template that would have been a better match if only the explicit template argument list  had not been given, and a user (especially someone writing a call to the template) may not have an understanding of the type deduction rules sufficient to know which template would be selected when there are multiple matches and only one match is selected by partial ordering.<br />
<br />
But who, without the assistance of medication, would not just assume that #1 (in the example above) is being specialized in the explicit-specialization?  Likewise, who, in the absence of default arguments and in the absence of any other overload, would not just assume that #1 would be called when the call expression contains only one argument?<br />
<br />
I recommend changing the wording of the rule to: <br />
<br />
<blockquote class="mycode_quote"><cite>Quote:</cite>An overloaded function template shall not be explicitly <br />
specialized if, in the absence of an explicit<br />
<span style="font-style: italic;" class="mycode_i">template-argument-list</span>, at least one template other than<br />
the selected template would succeed at type deduction against<br />
the function type given by the explicit specialization.</blockquote>
]]></description>
			<content:encoded><![CDATA[Hi all,<br />
<br />
I suspect that the net cast by rule 14â€“8â€“1 is too wide.  For example, I don't think it's helpful to label the following as "non-compliant":<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>template&nbsp;&nbsp;void f ( T );&nbsp;&nbsp;// #1<br />
template&nbsp;&nbsp;void f ( T*, T ); // #2<br />
<br />
template&nbsp;&nbsp;void f ( int32_t* ); // non-compliant with 14â€“8â€“1</code></div></div><br />
In this case, the specialization of #1 cannot get you into trouble.<br />
<br />
In the actual example given for 14â€“8â€“1, it is helpful to claim that the specialization is suspect because there is another template that would have been a better match if only the explicit template argument list  had not been given, and a user (especially someone writing a call to the template) may not have an understanding of the type deduction rules sufficient to know which template would be selected when there are multiple matches and only one match is selected by partial ordering.<br />
<br />
But who, without the assistance of medication, would not just assume that #1 (in the example above) is being specialized in the explicit-specialization?  Likewise, who, in the absence of default arguments and in the absence of any other overload, would not just assume that #1 would be called when the call expression contains only one argument?<br />
<br />
I recommend changing the wording of the rule to: <br />
<br />
<blockquote class="mycode_quote"><cite>Quote:</cite>An overloaded function template shall not be explicitly <br />
specialized if, in the absence of an explicit<br />
<span style="font-style: italic;" class="mycode_i">template-argument-list</span>, at least one template other than<br />
the selected template would succeed at type deduction against<br />
the function type given by the explicit specialization.</blockquote>
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Rule 14â€“6â€“1 and injected-class-names]]></title>
			<link>https://forum.misra.org.uk/showthread.php?tid=544</link>
			<pubDate>Thu, 03 Jul 2008 16:56:26 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.misra.org.uk/member.php?action=profile&uid=624">James Widman</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.misra.org.uk/showthread.php?tid=544</guid>
			<description><![CDATA[Hi all,<br />
<br />
Rule 14â€“6â€“1 says:  <br />
<br />
"In a class template with a dependent base, any name <br />
that may be found in that dependent base shall be <br />
referred to using a qualified-id or this-&gt;"<br />
<br />
But then the example code contains this line:<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>typename B::TYPE t2 = 0; // Compliant - explicit use base TYPE</code></div></div>But I don't think that's correct, because although TYPE is qualified, B is not.  I think this line should be moved into A::f1() and commented with "Non-compliant: B is unqualified".  And add the line: <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>typename ::B::TYPE t2 = 0; // Compliant - explicit use of B and of TYPE.</code></div></div>...to f2().<br />
<br />
Here's an example where it makes a difference: <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>template&nbsp;&nbsp;<br />
struct B&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;static void j();<br />
};<br />
<br />
namespace N {<br />
&nbsp;&nbsp;&nbsp;&nbsp;template&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct B { <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static void j();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}; <br />
<br />
}<br />
<br />
template&nbsp;&nbsp;<br />
struct A : public N::B { <br />
&nbsp;&nbsp;&nbsp;&nbsp;static void f1 ( ) { <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A::template B::j(); // compliant<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A::B::j(); // compliant<br />
&nbsp;&nbsp;&nbsp;&nbsp;} <br />
&nbsp;&nbsp;&nbsp;&nbsp;static void f2 ( ) { <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;B::j(); // non-compliant<br />
&nbsp;&nbsp;&nbsp;&nbsp;} <br />
}; <br />
<br />
void h() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;A::f1(); // calls ::N::B::j() twice<br />
&nbsp;&nbsp;&nbsp;&nbsp;A::f2(); // calls ::B::j() once<br />
}</code></div></div>]]></description>
			<content:encoded><![CDATA[Hi all,<br />
<br />
Rule 14â€“6â€“1 says:  <br />
<br />
"In a class template with a dependent base, any name <br />
that may be found in that dependent base shall be <br />
referred to using a qualified-id or this-&gt;"<br />
<br />
But then the example code contains this line:<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>typename B::TYPE t2 = 0; // Compliant - explicit use base TYPE</code></div></div>But I don't think that's correct, because although TYPE is qualified, B is not.  I think this line should be moved into A::f1() and commented with "Non-compliant: B is unqualified".  And add the line: <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>typename ::B::TYPE t2 = 0; // Compliant - explicit use of B and of TYPE.</code></div></div>...to f2().<br />
<br />
Here's an example where it makes a difference: <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>template&nbsp;&nbsp;<br />
struct B&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;static void j();<br />
};<br />
<br />
namespace N {<br />
&nbsp;&nbsp;&nbsp;&nbsp;template&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct B { <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static void j();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}; <br />
<br />
}<br />
<br />
template&nbsp;&nbsp;<br />
struct A : public N::B { <br />
&nbsp;&nbsp;&nbsp;&nbsp;static void f1 ( ) { <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A::template B::j(); // compliant<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A::B::j(); // compliant<br />
&nbsp;&nbsp;&nbsp;&nbsp;} <br />
&nbsp;&nbsp;&nbsp;&nbsp;static void f2 ( ) { <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;B::j(); // non-compliant<br />
&nbsp;&nbsp;&nbsp;&nbsp;} <br />
}; <br />
<br />
void h() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;A::f1(); // calls ::N::B::j() twice<br />
&nbsp;&nbsp;&nbsp;&nbsp;A::f2(); // calls ::B::j() once<br />
}</code></div></div>]]></content:encoded>
		</item>
	</channel>
</rss>