<?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: expected primary-expression before »&amp;gt;« token | Eigen2-Lib]]></title><description><![CDATA[<p>Hallo,<br />
ich versuche grad eine Klasse mit Eigen2-libs zu schreiben. In jeder Zeile in der ich Casten will bekomme ich Fehler angezeigt.</p>
<p>Source:</p>
<pre><code class="language-cpp">#ifndef ROOTCONE_H_
#define ROOTCONE_H_

#include &quot;Eigen/Core&quot;
#include &lt;boost/rational.hpp&gt;
#include &lt;iostream&gt;

USING_PART_OF_NAMESPACE_EIGEN

template&lt;int N, class T = boost::rational&lt;int&gt; &gt;
class RootCone
{
    private:
        Matrix&lt;int, N, N&gt; A;
        Matrix&lt;int, N, N&gt; B;
        Matrix&lt;T, N, N&gt; M;

    public:
        RootCone(Matrix&lt;int, N, N&gt; a, Matrix&lt;int, N, N&gt; b, Matrix&lt;T, N, N&gt; m)
        : A(a), B(b), M(m) {}

        Matrix&lt;T, N, 1&gt; project(int to_project, int project_along)
        {
            Matrix&lt;T, N, 1&gt; to_proj(A.col(to_project).cast&lt;T&gt;()); //HIER
            Matrix&lt;T, N, 1&gt; proj_along(A.col(project_along).cast&lt;T&gt;()); //HIER
            Matrix&lt;T, N, N&gt; scalar_product = B.cast&lt;T&gt;(); //HIER
            scalar_product.col(project_along) = proj_along;
            scalar_product = scalar_product.inverse();
            scalar_product *= scalar_product.adjoint();
            return to_proj - (proj_along.transpose() * scalar_product * to_proj)[0]*proj_along;
        }

};

#endif
</code></pre>
<p>Fehler:</p>
<pre><code>In member function »Eigen::Matrix&lt;T, N, 1, 2, N, 1&gt; RootCone&lt;N, T&gt;::project(int, int)«:|
24|Fehler: expected primary-expression before »&gt;« token
24|Fehler: expected primary-expression before »)« token
25|Fehler: expected primary-expression before »&gt;« token
25|Fehler: expected primary-expression before »)« token
26|Fehler: expected primary-expression before »&gt;« token
26|Fehler: expected primary-expression before »)« token
||=== Build finished: 6 errors, 0 warnings ===|
</code></pre>
<p>Bei folgendem Code bekomme ich keine Fehler:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;boost/rational.hpp&gt;
#include &quot;Eigen/Core&quot;

typedef boost::rational&lt;int&gt; Rational;

template&lt;class T&gt;
void test(Matrix&lt;int, 3, 3&gt; mat)
{
    std::cout &lt;&lt; mat.cast&lt;T&gt;();
}

int main()
{
    int arr[] = {1,2,3,4,5,6,7,8,9};
    Matrix&lt;int, 3,3&gt; mat(arr);
    test&lt; Rational &gt;(mat);

    return 0;
}
</code></pre>
<p>Das ist wahrscheinlich ein kleiner Fehler, aber ich komm da grad echt nich drauf. Wenn einer Antwort weiß, bin ich sehr dankbar.</p>
<p>mfg<br />
MamboKurt</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/243257/error-expected-primary-expression-before-gt-token-eigen2-lib</link><generator>RSS for Node</generator><lastBuildDate>Sun, 20 Sep 2026 03:41:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/243257.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 14 Jun 2009 17:39:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ERROR: expected primary-expression before »&amp;gt;« token | Eigen2-Lib on Sun, 14 Jun 2009 17:39:00 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich versuche grad eine Klasse mit Eigen2-libs zu schreiben. In jeder Zeile in der ich Casten will bekomme ich Fehler angezeigt.</p>
<p>Source:</p>
<pre><code class="language-cpp">#ifndef ROOTCONE_H_
#define ROOTCONE_H_

#include &quot;Eigen/Core&quot;
#include &lt;boost/rational.hpp&gt;
#include &lt;iostream&gt;

USING_PART_OF_NAMESPACE_EIGEN

template&lt;int N, class T = boost::rational&lt;int&gt; &gt;
class RootCone
{
    private:
        Matrix&lt;int, N, N&gt; A;
        Matrix&lt;int, N, N&gt; B;
        Matrix&lt;T, N, N&gt; M;

    public:
        RootCone(Matrix&lt;int, N, N&gt; a, Matrix&lt;int, N, N&gt; b, Matrix&lt;T, N, N&gt; m)
        : A(a), B(b), M(m) {}

        Matrix&lt;T, N, 1&gt; project(int to_project, int project_along)
        {
            Matrix&lt;T, N, 1&gt; to_proj(A.col(to_project).cast&lt;T&gt;()); //HIER
            Matrix&lt;T, N, 1&gt; proj_along(A.col(project_along).cast&lt;T&gt;()); //HIER
            Matrix&lt;T, N, N&gt; scalar_product = B.cast&lt;T&gt;(); //HIER
            scalar_product.col(project_along) = proj_along;
            scalar_product = scalar_product.inverse();
            scalar_product *= scalar_product.adjoint();
            return to_proj - (proj_along.transpose() * scalar_product * to_proj)[0]*proj_along;
        }

};

#endif
</code></pre>
<p>Fehler:</p>
<pre><code>In member function »Eigen::Matrix&lt;T, N, 1, 2, N, 1&gt; RootCone&lt;N, T&gt;::project(int, int)«:|
24|Fehler: expected primary-expression before »&gt;« token
24|Fehler: expected primary-expression before »)« token
25|Fehler: expected primary-expression before »&gt;« token
25|Fehler: expected primary-expression before »)« token
26|Fehler: expected primary-expression before »&gt;« token
26|Fehler: expected primary-expression before »)« token
||=== Build finished: 6 errors, 0 warnings ===|
</code></pre>
<p>Bei folgendem Code bekomme ich keine Fehler:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;boost/rational.hpp&gt;
#include &quot;Eigen/Core&quot;

typedef boost::rational&lt;int&gt; Rational;

template&lt;class T&gt;
void test(Matrix&lt;int, 3, 3&gt; mat)
{
    std::cout &lt;&lt; mat.cast&lt;T&gt;();
}

int main()
{
    int arr[] = {1,2,3,4,5,6,7,8,9};
    Matrix&lt;int, 3,3&gt; mat(arr);
    test&lt; Rational &gt;(mat);

    return 0;
}
</code></pre>
<p>Das ist wahrscheinlich ein kleiner Fehler, aber ich komm da grad echt nich drauf. Wenn einer Antwort weiß, bin ich sehr dankbar.</p>
<p>mfg<br />
MamboKurt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1726539</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1726539</guid><dc:creator><![CDATA[MamboKurt]]></dc:creator><pubDate>Sun, 14 Jun 2009 17:39:00 GMT</pubDate></item><item><title><![CDATA[Reply to ERROR: expected primary-expression before »&amp;gt;« token | Eigen2-Lib on Sun, 14 Jun 2009 20:50:49 GMT]]></title><description><![CDATA[<p>Mir fehlen da noch ein paar Informationen über die Klasse Matrix, aber ich würde mal vermuten, dass hier der Fehler liegt:</p>
<pre><code class="language-cpp">Matrix&lt;T, N, 1&gt; to_proj(A.col(to_project).template cast&lt;T&gt;()); //HIER 
Matrix&lt;T, N, 1&gt; proj_along(A.col(project_along).template cast&lt;T&gt;()); //HIER 
Matrix&lt;T, N, N&gt; scalar_product = B.template cast&lt;T&gt;(); //HIER
</code></pre>
<p>Es fehlt also ein <code>template</code> vor der Funktion. Das ist nötig, damit der Parser weiss, dass eine Templatefunktion folgt, sonst sieht er <code>cast</code> als Variable und '&lt;' als &quot;Operator Kleiner Als&quot;. Sowas ist nur nötig, wenn man eine Templatefunktion aufruft von einem Objekt, welches selber von einem Templateparameter abhängig ist.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1726632</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1726632</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sun, 14 Jun 2009 20:50:49 GMT</pubDate></item><item><title><![CDATA[Reply to ERROR: expected primary-expression before »&amp;gt;« token | Eigen2-Lib on Mon, 15 Jun 2009 09:27:45 GMT]]></title><description><![CDATA[<p>danke. das wars</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1726809</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1726809</guid><dc:creator><![CDATA[MamboKurt]]></dc:creator><pubDate>Mon, 15 Jun 2009 09:27:45 GMT</pubDate></item></channel></rss>