<?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[Globaler Funktionspointer]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe eine Funktion</p>
<pre><code class="language-cpp">...
#include &quot;constants.h&quot;

namespace GiNaC
{
	bool fn_ex_is_less (ex a, ex b);
...
}
</code></pre>
<p>in utilities.h deklariert die in utilities.cpp implementiert wird.</p>
<p>Jetzt hätte ich gern in constants.h auch im namespace GiNaC einen global-sichtbaren, konstanten Funktionszeiger auf fn_ex_is_less. Leider weiß ich überhaupt nicht wie das geht.</p>
<pre><code class="language-cpp">#include &quot;utilities.h&quot;

namespace GiNaC
{
...
bool(*fn_pt)(int,int) = fn_ex_is_less;

}
</code></pre>
<p>Das klappt leider nicht. Ich bekomme</p>
<pre><code>In file included from utilities.h:37,
                 from utilities.cpp:35:
constants.h:251: error: 'fn_ex_is_less' was not declared in this scope
</code></pre>
<p>Irgendwelche Ideen? Vielen Danke schonmal!</p>
<p>Joachim</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/289519/globaler-funktionspointer</link><generator>RSS for Node</generator><lastBuildDate>Wed, 19 Aug 2026 02:53:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/289519.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 06 Jul 2011 16:49:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Globaler Funktionspointer on Wed, 06 Jul 2011 16:49:34 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe eine Funktion</p>
<pre><code class="language-cpp">...
#include &quot;constants.h&quot;

namespace GiNaC
{
	bool fn_ex_is_less (ex a, ex b);
...
}
</code></pre>
<p>in utilities.h deklariert die in utilities.cpp implementiert wird.</p>
<p>Jetzt hätte ich gern in constants.h auch im namespace GiNaC einen global-sichtbaren, konstanten Funktionszeiger auf fn_ex_is_less. Leider weiß ich überhaupt nicht wie das geht.</p>
<pre><code class="language-cpp">#include &quot;utilities.h&quot;

namespace GiNaC
{
...
bool(*fn_pt)(int,int) = fn_ex_is_less;

}
</code></pre>
<p>Das klappt leider nicht. Ich bekomme</p>
<pre><code>In file included from utilities.h:37,
                 from utilities.cpp:35:
constants.h:251: error: 'fn_ex_is_less' was not declared in this scope
</code></pre>
<p>Irgendwelche Ideen? Vielen Danke schonmal!</p>
<p>Joachim</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2089620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2089620</guid><dc:creator><![CDATA[ZeigerJo]]></dc:creator><pubDate>Wed, 06 Jul 2011 16:49:34 GMT</pubDate></item><item><title><![CDATA[Reply to Globaler Funktionspointer on Wed, 06 Jul 2011 16:50:56 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">bool(*fn_pt)(ex,ex) = fn_ex_is_less;
</code></pre>
<p>Natürlich so. Ändert aber nix am Fehler</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2089622</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2089622</guid><dc:creator><![CDATA[ZeigerJo]]></dc:creator><pubDate>Wed, 06 Jul 2011 16:50:56 GMT</pubDate></item><item><title><![CDATA[Reply to Globaler Funktionspointer on Wed, 06 Jul 2011 16:54:37 GMT]]></title><description><![CDATA[<p>Ja, ich hätte da eine Idee: sorg dafür, daß du keine wechselseitigen Abhängigkeiten zwischen den Headern hast. Die beiden Header utility.h und const.h binden sich gegenseitig ein - und da sind die Chancen hoch, daß sie nach der Verarbeitung durch den Präprozessor in der falschen Reihenfolge eingebunden werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2089624</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2089624</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 06 Jul 2011 16:54:37 GMT</pubDate></item><item><title><![CDATA[Reply to Globaler Funktionspointer on Wed, 06 Jul 2011 17:06:20 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Ja, ich hätte da eine Idee: sorg dafür, daß du keine wechselseitigen Abhängigkeiten zwischen den Headern hast. Die beiden Header utility.h und const.h binden sich gegenseitig ein - und da sind die Chancen hoch, daß sie nach der Verarbeitung durch den Präprozessor in der falschen Reihenfolge eingebunden werden.</p>
</blockquote>
<p>Oke, wie z.B. ?</p>
<p>Wenn ich die Sachen einfach untereinander in utilities.h packe:</p>
<pre><code class="language-cpp">#include &quot;constants.h&quot;

namespace GiNaC
{

	bool fn_ex_is_less (ex a, ex b);

	bool(*fn_pt)(ex,ex) = fn_ex_is_less;

...
</code></pre>
<p>Bekomme ich ganz viele Fehler:</p>
<pre><code>In file included from constants.h:38,
                 from UnivariatePolynomial.h:39,
                 from UnivariatePolynomial.cpp:34:
utilities.h:50: error: expected type-specifier before 'invalid_argument'
utilities.h:50: error: expected ')' before 'invalid_argument'
utilities.h:50: error: expected initializer before 'invalid_argument'
utilities.h:57: error: ISO C++ forbids declaration of 'list' with no type
utilities.h:57: error: expected ',' or '...' before '&lt;' token
utilities.h:64: error: ISO C++ forbids declaration of 'list' with no type
utilities.h:64: error: expected ',' or '...' before '&lt;' token
utilities.h:73: error: ISO C++ forbids declaration of 'list' with no type
utilities.h:73: error: expected ',' or '...' before '&lt;' token
utilities.h:78: error: expected initializer before '&lt;' token
...
</code></pre>
<p>Die waren vorher alle nicht da.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2089633</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2089633</guid><dc:creator><![CDATA[ZeigerJo]]></dc:creator><pubDate>Wed, 06 Jul 2011 17:06:20 GMT</pubDate></item><item><title><![CDATA[Reply to Globaler Funktionspointer on Wed, 06 Jul 2011 17:11:38 GMT]]></title><description><![CDATA[<p>Den Fehler kann ich aus diesen Fragmenten nicht nachvollziehen (zumal du bestimmt nicht den Bereich gepostet hast, in dem die Fehler aufgetreten sind). Aber auf jeden Fall solltest du eine der beiden #include-Anweisungen weglassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2089635</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2089635</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 06 Jul 2011 17:11:38 GMT</pubDate></item><item><title><![CDATA[Reply to Globaler Funktionspointer on Wed, 06 Jul 2011 18:30:13 GMT]]></title><description><![CDATA[<p><a href="http://www.c-plusplus.net/forum/p1993089#1993089" rel="nofollow">http://www.c-plusplus.net/forum/p1993089#1993089</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2089672</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2089672</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Wed, 06 Jul 2011 18:30:13 GMT</pubDate></item></channel></rss>