000
26.09.2007, 16:53 Uhr
Tommix
|
Hallo, ich habe ein Problem beim Konvertieren von C# Code nach C++ /clr. Ich probiere die ILNumerics-Bibliothek aus (http://ilnumerics.net/). Eigentlich interessiert mich die Diagrammdarstellung, aber ich scheitere schon an den Basics. In C# kann ich folgendes machen:
C++: |
namespace CSharp { class Program { static void Main(string[] args) { ILNumerics.ILArray<Double> nullen = ILNumerics.ILArray<Double>.zeros(10, 10); ILNumerics.ILArray<Double> einsen = nullen + 1.0; } } }
|
"einsen" ist dann eine 10x10 Matrix, alle Elemente 1.0. In C++ habe ich es nun so versucht:
C++: |
int main() { ILNumerics::ILArray<double>^ nullen = ILNumerics::ILArray<double>::zeros(10, 10); ILNumerics::ILArray<double>^ einsen = nullen+1.0; // dto: .. = ILNumerics::ILArray<double>::operator +(nullen, 1.0); return 0; }
|
Bei der Zeile 27 (... einsen = nullen...) kriege ich
Code: |
1>.\Console.cpp(27) : error C2535: 'ILNumerics::ILArray<BaseT>::ILArray(cli::array<Type,dimension> ^)': Memberfunktion bereits definiert oder deklariert 1> with 1> [ 1> BaseT=int, 1> Type=int, 1> dimension=1 1> ] 1> .\Console.cpp(27): Siehe Verweis auf die Instanziierung der gerade kompilierten Klassen-generic "ILNumerics::ILArray<BaseT>". 1> with 1> [ 1> BaseT=int 1> ]
|
Ich kanns nicht recht deuten. Gibt es bei überladenen Operatoren in Generics eine spezielle Syntax?
Gruß, Tommix |