I template Funktion definieren folgenden, die auf jedem Element eines ArraysEine Template-Funktion abstürzt
template <typename X, typename Y, size_t n>
array <Y, n> lod (const function <Y (const X)> f, const array <X, n> w)
{
array <Y, n> l;
for (GLint i = 0; i = i + 1; i < n)
l [i] = f (w [i]);
return l;
}
Als Beispiel f eine Funktion f gilt, definiere ich eine Funktion
template <typename X>
function <X (const X)> ae (const X a)
{
return [a] (const X x)
{
return x + a;
};
}
„ein In“
Dann versuche ich es
const array <ivec3, 12> oblad = {ivec3 (0, 2, 1), ivec3 (0, 3, 2), ivec3 (0, 1, 5), ivec3 (0, 5, 4),
ivec3 (1, 2, 6), ivec3 (1, 6, 5), ivec3 (2, 3, 7), ivec3 (2, 7, 6),
ivec3 (3, 0, 4), ivec3 (3, 4, 7), ivec3 (4, 5, 6), ivec3 (4, 6, 7)};
array <ivec3, 12> w = lod (ae (ivec3 (1)), oblad);
Das Programm kompiliert ganz gut, jedoch gelten bei der Ausführung abstürzt.
Ihre Schleife schreibt außerhalb der Grenzen des Arrays, einmal 'I' 'n' erreicht. Wahrscheinlich meintest du 'für (GLint i = 0; i
So funktionieren Loops nicht. Bitte konsultieren Sie irgendein elementares Lehrbuch zu C++. –
Abstimmung als Tippfehler zu schließen (vermasselt die for-Schleife Zustand Reihenfolge) –