<?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[Error C2059: Syntaxfehler &#x27;;&#x27;]]></title><description><![CDATA[<p>Liebes Forum,</p>
<p>ich schreibe gerade an einem Projekt, das eine Mathe-Library darstellen soll. Nun habe ich eine Headerdatei namens <strong>Frustrum.h</strong> folgendermaßen definiert:</p>
<pre><code>#ifndef FRUSTRUM_H
#define FRUSTRUM_H

#include &quot;3dRendering/Plane.h&quot;
#include &quot;3dRendering/MathDefines.h&quot;

enum Side { Near, Far, Top, Right, Bottom, Left, NumPlanes };

class Frustrum
{
public:
    float m_Fov;
    float m_Aspect;
    float m_NearDis;
    float m_FarDis;

    Plane m_Planes[NumPlanes];
    Vec3 m_NearClip[4]; // verts of near clip plane
    Vec3 m_FarClip[4]; // verts of far clip plane

    /**----------------------------------------------------*/

    Frustrum();

    void SetFOV(float fov) { m_Fov=fov; Init(m_Fov, m_Aspect, 1.0f, 1000.0f); }
    void SetAspect(float aspect);
    void SetNear(float near);
    void SetFar(float far);
    bool Inside(const Vec3 &amp;p);
    bool Inside(const Vec3 &amp;p, const float radius);
    const Plane &amp;Get(Side side) { return m_Planes[side]; }
    void Init(const float fov, const float aspect, const float near, const float far);

    void Render();
protected:
};

#endif // FRUSTRUM_H
</code></pre>
<p>Dazu habe ich eine passende Datei <strong>Frustrum.cpp</strong> geschrieben:</p>
<pre><code>#include &quot;Engine/EngineStd.h&quot;
#include &quot;3dRendering/Frustrum.h&quot;

Frustrum::Frustrum()
{
    m_Fov = 90.0; // 90 degrees FOV
    m_Aspect = 1.0f;
    m_NearDis = 1.0f;
    m_FarDis = 1000.0f;
}

void Frustrum::SetNear(float near)
{
    this-&gt;m_NearDis = near;
    //Init(m_Fov, m_Aspect, m_NearDis, m_FarDis);
}
void Frustrum::SetAspect(const float aspect)
    { m_Aspect=aspect; Init(m_Fov, m_Aspect, m_NearDis, m_FarDis); }
void Frustrum::SetFar(const float far)
    { m_FarDis=far; Init(m_Fov, m_Aspect, m_NearDis, m_FarDis); }

bool Frustrum::Inside(const Vec3 &amp;p)
{
    for(int i = 0; i &lt; NumPlanes; ++i)
    {
        if(!m_Planes[i].Inside(p))
            return false;
    }
    return true;
}

bool Frustrum::Inside(const Vec3 &amp;p, const float radius)
{
    for(int i = 0; i &lt; NumPlanes; ++i)
    {
        if(!m_Planes[i].Inside(p, radius))
            return false;
    }
    return true;
}

void Frustrum::Init(const float fov, const float aspect, const float near, const float far)
{
    m_Fov = fov;
    m_Aspect = aspect;
    m_NearDis = near;
    m_FarDis = far;

    double tanFovOver2 = tan((m_Fov/2.0f)*DEG2RAD);
    Vec3 nearRight = (g_Right) * ((m_NearDis * (float)tanFovOver2) * m_Aspect);
    Vec3 farRight = (g_Right) * ((m_FarDis * (float)tanFovOver2) * m_Aspect);
    Vec3 nearUp = (g_Up) * (m_NearDis * (float)tanFovOver2);
    Vec3 farUp = (g_Up) * (m_FarDis * (float)tanFovOver2);

    // near clipping plane
    m_NearClip[0] = ((g_Forward) * m_NearDis) - nearRight + nearUp;
    m_NearClip[1] = ((g_Forward) * m_NearDis) + nearRight + nearUp;
    m_NearClip[2] = ((g_Forward) * m_NearDis) + nearRight - nearUp;
    m_NearClip[3] = ((g_Forward) * m_NearDis) - nearRight - nearUp;

    // far clipping plane
    m_FarClip[0] = ((g_Forward) * m_FarDis) - farRight + farUp;
    m_FarClip[1] = ((g_Forward) * m_FarDis) + farRight + farUp;
    m_FarClip[2] = ((g_Forward) * m_FarDis) + farRight - farUp;
    m_FarClip[3] = ((g_Forward) * m_FarDis) - farRight - farUp;

    // construct the planes
    Vec3 origin(0.0f, 0.0f, 0.0f);
    m_Planes[Near].Init(m_NearClip[2], m_NearClip[1], m_NearClip[0]);
    m_Planes[Far].Init(m_FarClip[0], m_FarClip[1], m_FarClip[2]);
    m_Planes[Right].Init(m_FarClip[2], m_FarClip[1], origin);
    m_Planes[Top].Init(m_FarClip[1], m_FarClip[0], origin);
    m_Planes[Left].Init(m_FarClip[0], m_FarClip[3], origin);
    m_Planes[Bottom].Init(m_FarClip[3], m_FarClip[2], origin);
}
</code></pre>
<p>Wenn ich diese Dateien jetzt allerdings kompilieren möchte, bekomme ich folgende Fehlermeldung(en):</p>
<blockquote>
<p>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocale|323|warning C4530: C++-Handler verwendet, aber Entladesemantik ist nicht aktiviert. Geben Sie /EHsc an.|<br />
src\3dRendering\Frustrum.cpp|14|error C2059: Syntaxfehler: ';'|<br />
src\3dRendering\Frustrum.cpp|20|error C2059: Syntaxfehler: ';'|<br />
src\3dRendering\Frustrum.cpp|46|error C2059: Syntaxfehler: ';'|<br />
src\3dRendering\Frustrum.cpp|47|error C2059: Syntaxfehler: ';'|<br />
||=== Build finished: 4 errors, 1 warnings (0 minutes, 0 seconds) ===|</p>
</blockquote>
<p>Als Compiler benutze ich den MSVC 2010 und als IDE Code::Blocks.</p>
<p>Woher kommen die Syntaxfehler? Die Funktionen sind doch dasselbe wie bei m_Aspect und m_Fov, warum funktioneren sie dann aber nicht?! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Ich hoffe auf eure Hilfe.</p>
<p>Mit vielen, lieben Grüßen,<br />
~ EuadeLuxe ~</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/318431/error-c2059-syntaxfehler</link><generator>RSS for Node</generator><lastBuildDate>Mon, 27 Jul 2026 11:32:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/318431.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 12 Jul 2013 16:51:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Error C2059: Syntaxfehler &#x27;;&#x27; on Fri, 12 Jul 2013 16:51:40 GMT]]></title><description><![CDATA[<p>Liebes Forum,</p>
<p>ich schreibe gerade an einem Projekt, das eine Mathe-Library darstellen soll. Nun habe ich eine Headerdatei namens <strong>Frustrum.h</strong> folgendermaßen definiert:</p>
<pre><code>#ifndef FRUSTRUM_H
#define FRUSTRUM_H

#include &quot;3dRendering/Plane.h&quot;
#include &quot;3dRendering/MathDefines.h&quot;

enum Side { Near, Far, Top, Right, Bottom, Left, NumPlanes };

class Frustrum
{
public:
    float m_Fov;
    float m_Aspect;
    float m_NearDis;
    float m_FarDis;

    Plane m_Planes[NumPlanes];
    Vec3 m_NearClip[4]; // verts of near clip plane
    Vec3 m_FarClip[4]; // verts of far clip plane

    /**----------------------------------------------------*/

    Frustrum();

    void SetFOV(float fov) { m_Fov=fov; Init(m_Fov, m_Aspect, 1.0f, 1000.0f); }
    void SetAspect(float aspect);
    void SetNear(float near);
    void SetFar(float far);
    bool Inside(const Vec3 &amp;p);
    bool Inside(const Vec3 &amp;p, const float radius);
    const Plane &amp;Get(Side side) { return m_Planes[side]; }
    void Init(const float fov, const float aspect, const float near, const float far);

    void Render();
protected:
};

#endif // FRUSTRUM_H
</code></pre>
<p>Dazu habe ich eine passende Datei <strong>Frustrum.cpp</strong> geschrieben:</p>
<pre><code>#include &quot;Engine/EngineStd.h&quot;
#include &quot;3dRendering/Frustrum.h&quot;

Frustrum::Frustrum()
{
    m_Fov = 90.0; // 90 degrees FOV
    m_Aspect = 1.0f;
    m_NearDis = 1.0f;
    m_FarDis = 1000.0f;
}

void Frustrum::SetNear(float near)
{
    this-&gt;m_NearDis = near;
    //Init(m_Fov, m_Aspect, m_NearDis, m_FarDis);
}
void Frustrum::SetAspect(const float aspect)
    { m_Aspect=aspect; Init(m_Fov, m_Aspect, m_NearDis, m_FarDis); }
void Frustrum::SetFar(const float far)
    { m_FarDis=far; Init(m_Fov, m_Aspect, m_NearDis, m_FarDis); }

bool Frustrum::Inside(const Vec3 &amp;p)
{
    for(int i = 0; i &lt; NumPlanes; ++i)
    {
        if(!m_Planes[i].Inside(p))
            return false;
    }
    return true;
}

bool Frustrum::Inside(const Vec3 &amp;p, const float radius)
{
    for(int i = 0; i &lt; NumPlanes; ++i)
    {
        if(!m_Planes[i].Inside(p, radius))
            return false;
    }
    return true;
}

void Frustrum::Init(const float fov, const float aspect, const float near, const float far)
{
    m_Fov = fov;
    m_Aspect = aspect;
    m_NearDis = near;
    m_FarDis = far;

    double tanFovOver2 = tan((m_Fov/2.0f)*DEG2RAD);
    Vec3 nearRight = (g_Right) * ((m_NearDis * (float)tanFovOver2) * m_Aspect);
    Vec3 farRight = (g_Right) * ((m_FarDis * (float)tanFovOver2) * m_Aspect);
    Vec3 nearUp = (g_Up) * (m_NearDis * (float)tanFovOver2);
    Vec3 farUp = (g_Up) * (m_FarDis * (float)tanFovOver2);

    // near clipping plane
    m_NearClip[0] = ((g_Forward) * m_NearDis) - nearRight + nearUp;
    m_NearClip[1] = ((g_Forward) * m_NearDis) + nearRight + nearUp;
    m_NearClip[2] = ((g_Forward) * m_NearDis) + nearRight - nearUp;
    m_NearClip[3] = ((g_Forward) * m_NearDis) - nearRight - nearUp;

    // far clipping plane
    m_FarClip[0] = ((g_Forward) * m_FarDis) - farRight + farUp;
    m_FarClip[1] = ((g_Forward) * m_FarDis) + farRight + farUp;
    m_FarClip[2] = ((g_Forward) * m_FarDis) + farRight - farUp;
    m_FarClip[3] = ((g_Forward) * m_FarDis) - farRight - farUp;

    // construct the planes
    Vec3 origin(0.0f, 0.0f, 0.0f);
    m_Planes[Near].Init(m_NearClip[2], m_NearClip[1], m_NearClip[0]);
    m_Planes[Far].Init(m_FarClip[0], m_FarClip[1], m_FarClip[2]);
    m_Planes[Right].Init(m_FarClip[2], m_FarClip[1], origin);
    m_Planes[Top].Init(m_FarClip[1], m_FarClip[0], origin);
    m_Planes[Left].Init(m_FarClip[0], m_FarClip[3], origin);
    m_Planes[Bottom].Init(m_FarClip[3], m_FarClip[2], origin);
}
</code></pre>
<p>Wenn ich diese Dateien jetzt allerdings kompilieren möchte, bekomme ich folgende Fehlermeldung(en):</p>
<blockquote>
<p>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocale|323|warning C4530: C++-Handler verwendet, aber Entladesemantik ist nicht aktiviert. Geben Sie /EHsc an.|<br />
src\3dRendering\Frustrum.cpp|14|error C2059: Syntaxfehler: ';'|<br />
src\3dRendering\Frustrum.cpp|20|error C2059: Syntaxfehler: ';'|<br />
src\3dRendering\Frustrum.cpp|46|error C2059: Syntaxfehler: ';'|<br />
src\3dRendering\Frustrum.cpp|47|error C2059: Syntaxfehler: ';'|<br />
||=== Build finished: 4 errors, 1 warnings (0 minutes, 0 seconds) ===|</p>
</blockquote>
<p>Als Compiler benutze ich den MSVC 2010 und als IDE Code::Blocks.</p>
<p>Woher kommen die Syntaxfehler? Die Funktionen sind doch dasselbe wie bei m_Aspect und m_Fov, warum funktioneren sie dann aber nicht?! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Ich hoffe auf eure Hilfe.</p>
<p>Mit vielen, lieben Grüßen,<br />
~ EuadeLuxe ~</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2338480</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2338480</guid><dc:creator><![CDATA[EuadeLuxe]]></dc:creator><pubDate>Fri, 12 Jul 2013 16:51:40 GMT</pubDate></item><item><title><![CDATA[Reply to Error C2059: Syntaxfehler &#x27;;&#x27; on Fri, 12 Jul 2013 17:02:22 GMT]]></title><description><![CDATA[<p>Vermutlich betrachtet der Compiler die Bezeichner near und far als Schlüsselwörter</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2338483</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2338483</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Fri, 12 Jul 2013 17:02:22 GMT</pubDate></item><item><title><![CDATA[Reply to Error C2059: Syntaxfehler &#x27;;&#x27; on Fri, 12 Jul 2013 17:06:03 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /><br />
Gibt es denn Schlüsselwörter die near bzw. far heißen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Danke für deine Antwort, wird innerhalb der nächsten 30 Sekunden getestet ^^.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2338487</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2338487</guid><dc:creator><![CDATA[EuadeLuxe]]></dc:creator><pubDate>Fri, 12 Jul 2013 17:06:03 GMT</pubDate></item><item><title><![CDATA[Reply to Error C2059: Syntaxfehler &#x27;;&#x27; on Fri, 12 Jul 2013 17:10:48 GMT]]></title><description><![CDATA[<p>Vielen, vielen Dank, camper,</p>
<p>ich habe die Parameter nun umbenannt, und siehe da es funktioniert. Um solche Fehler in Zukunft vermeiden zu können, wüüste ich noch gerne wie du darauf gekommen bist, denn ich habe nachgeschlagen und kein Schlüsselwort namens 'near' oder gar 'far' gefunden. Gab es solche evtl. in früheren C++ / C Versionen?</p>
<p>Mit vielen, erleichterten Grüßen,<br />
~ EuadeLuxe ~</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2338490</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2338490</guid><dc:creator><![CDATA[EuadeLuxe]]></dc:creator><pubDate>Fri, 12 Jul 2013 17:10:48 GMT</pubDate></item><item><title><![CDATA[Reply to Error C2059: Syntaxfehler &#x27;;&#x27; on Fri, 12 Jul 2013 17:51:10 GMT]]></title><description><![CDATA[<p>Jain. Im Standard gab's sie glaub ich nie offiziell. Obs sie im ARM-C++ gab, weiss ich nicht.<br />
Jedenfalls war zu DOS-Zeiten urspruenglich ja mal der Real-Mode der Stand der Dinge, und dementsprechend mussten die C-Compiler (fuer DOS hauptsaechlich Microsoft C, von dem MSVC abstammt und Borland Turbo-C) irgendeine Moeglichkeit bieten, Far- und Near-Zeiger zu unterscheiden. Der Zugriff auf den Speicher war damals nicht einfach linear, sondern musste durch Segment- und Offset-Adressierung passieren. Wie das genau funktioniert, kannst du selber nachlesen, bin zu faul zum erklaeren. Jedenfalls war sowohl der Segment- als auch der Offset-Teil jeweils 16 Bit lang. Da du aber mit dem reinen Offset immerhin 64 KB adressieren kannst, und die zusaetzlichen 16 Bit des Segments meistens eh nicht gebraucht wurden (weil die Daten in einem Segment lagen), dafuer aber 2 Bytes Speicher (die damals, bei 640 KB maximal wertvoll sein konnten) verschwendet haben, ging man dazu ueber die Zeiger in Far-Pointer und Near-Pointer zu unterscheiden. Near-Pointer waren dann nur die Offsets, also 2 Bytes lang, und Far-Zeiger hatten Segment:Offset, also 4 Bytes.<br />
Heute ist das natuerlich alles kein Thema mehr, da 16-bitter extreme Nieschen sind, und Zeiger mit 32 oder 64 Bit in einem Linearen Adressraum verwendet werden. Der Kompatibilitaet halber hat der MSVC wohl die <s>Schluesselwoerter</s> Makro-Definitionen <em>[Danke @ hustbaer]</em> noch drin.</p>
<p>Alle Angaben ohne Gewaehr, ich gehe nur nach dem, was ich mal gelesen habe; zu der Zeit war ich noch nicht mal auf der Welt, als der Real-Mode das Maximum aller Dinge war.<br />
[/Geschichtstunde]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2338497</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2338497</guid><dc:creator><![CDATA[Jonas OSDever]]></dc:creator><pubDate>Fri, 12 Jul 2013 17:51:10 GMT</pubDate></item><item><title><![CDATA[Reply to Error C2059: Syntaxfehler &#x27;;&#x27; on Fri, 12 Jul 2013 17:46:51 GMT]]></title><description><![CDATA[<p><code>near</code> und <code>far</code> sind keine Keywords, auch bei MSVC nicht.</p>
<p>Nur steht in <code>windef.h</code></p>
<pre><code class="language-cpp">...

#undef far
#undef near
#undef pascal

#define far
#define near
#if (!defined(_MAC)) &amp;&amp; ((_MSC_VER &gt;= 800) || defined(_STDCALL_SUPPORTED))
#define pascal __stdcall
#else
#define pascal
#endif

...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2338498</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2338498</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 12 Jul 2013 17:46:51 GMT</pubDate></item><item><title><![CDATA[Reply to Error C2059: Syntaxfehler &#x27;;&#x27; on Fri, 12 Jul 2013 19:19:08 GMT]]></title><description><![CDATA[<p>Danke, das mit den Pointer wusste ich noch gar nicht, dass man die so bezeichnet hat, danke dir. Aber jetzt macht der Fehler Sinn, danke euch allen! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <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>
<p>Mit vielen, lieben Grüßen,<br />
~ EuadeLuxe ~</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2338513</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2338513</guid><dc:creator><![CDATA[EuadeLuxe]]></dc:creator><pubDate>Fri, 12 Jul 2013 19:19:08 GMT</pubDate></item></channel></rss>