<?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[Template Defaultargumente]]></title><description><![CDATA[<p>Ich habe folgenden Code:</p>
<pre><code>#pragma once

#include &lt;exception&gt;

template &lt;typename error_type&gt;
class DefaultException : public std::exception
{
public:
	DefaultException(error_type code) : code(code) {}
	virtual const char *what() const override = 0;

	error_type errorcode() const
	{
		return code;
	}

private:
	error_type code;
};
</code></pre>
<pre><code>#pragma once

#include &quot;DefaultException.h&quot;

enum class registry_error
{
	ok,
	access_denied,
	not_found
};

template &lt;typename T = registry_error&gt;
class RegistryException : public DefaultException&lt;T&gt;
{
public:
	RegistryException(T code) : DefaultException&lt;T&gt;(code) {}

	const char *what() const override
	{
		switch (code)
		{
			case registry_error::ok:			return &quot;No error occurred&quot;;
			case registry_error::access_denied: return &quot;Access denied&quot;;
			default:							return &quot;An unknown error occurred&quot;;
		}
	}
};
</code></pre>
<p>Bei meiner RegistryException habe ich ja einen Default Template-Parameter angegeben. Wenn ich jetzt aber in meinem Code sowas machen will:</p>
<pre><code>throw RegistryException(registry_error::access_denied);
</code></pre>
<p>sagt der Compiler, dass ihm die Argumentliste für die Klassenvorlage fehlt.<br />
Kann mir wer erklären wie ich das fixen kann?</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/325989/template-defaultargumente</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Jul 2026 14:43:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/325989.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 27 May 2014 07:15:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Template Defaultargumente on Tue, 27 May 2014 07:15:43 GMT]]></title><description><![CDATA[<p>Ich habe folgenden Code:</p>
<pre><code>#pragma once

#include &lt;exception&gt;

template &lt;typename error_type&gt;
class DefaultException : public std::exception
{
public:
	DefaultException(error_type code) : code(code) {}
	virtual const char *what() const override = 0;

	error_type errorcode() const
	{
		return code;
	}

private:
	error_type code;
};
</code></pre>
<pre><code>#pragma once

#include &quot;DefaultException.h&quot;

enum class registry_error
{
	ok,
	access_denied,
	not_found
};

template &lt;typename T = registry_error&gt;
class RegistryException : public DefaultException&lt;T&gt;
{
public:
	RegistryException(T code) : DefaultException&lt;T&gt;(code) {}

	const char *what() const override
	{
		switch (code)
		{
			case registry_error::ok:			return &quot;No error occurred&quot;;
			case registry_error::access_denied: return &quot;Access denied&quot;;
			default:							return &quot;An unknown error occurred&quot;;
		}
	}
};
</code></pre>
<p>Bei meiner RegistryException habe ich ja einen Default Template-Parameter angegeben. Wenn ich jetzt aber in meinem Code sowas machen will:</p>
<pre><code>throw RegistryException(registry_error::access_denied);
</code></pre>
<p>sagt der Compiler, dass ihm die Argumentliste für die Klassenvorlage fehlt.<br />
Kann mir wer erklären wie ich das fixen kann?</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2401030</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2401030</guid><dc:creator><![CDATA[template_q]]></dc:creator><pubDate>Tue, 27 May 2014 07:15:43 GMT</pubDate></item><item><title><![CDATA[Reply to Template Defaultargumente on Tue, 27 May 2014 07:29:32 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">throw RegistryException&lt;&gt;(registry_error::access_denied);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2401033</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2401033</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Tue, 27 May 2014 07:29:32 GMT</pubDate></item></channel></rss>