Konnte D's Mixins verwendet werden, um lineare Algebraoperationen auf entweder CPU-Code und OpenCL- oder GPU-Vertex-Shader-Funktionen wie GLSL? Dies wäre eine echte Killer-Anwendung für D und eine bessere Bridge-Logik für die CPU- und GPU-Ausführung. Vergleichen Sie dies mit glm und D's gl3n, die nur feste Größe lineare Algebra zu CPU-Code kompilieren.D CTFE- und GPU-Codegenerierung
VexCL ist ein Proof of Concept für diese Verwendung von OpenCL und C++ 11 (4.6 GCC oder höher) von vollständig abstrahiert entfernt Backend-abhängige (CPU/GPU) Implementierungsdetails über Speicherzuordnungen und die Ausführung von Code ein wenig ähnlich C++ AMP. Also kann es in D nur noch besser werden? Können Mixins die Verwendung von in VexCL verwendeten C++ - Ausdrucksvorlagen vollständig ersetzen? Here's a nice tutorial auf seine Verwendung.
CTFE kann auch eine Rolle in dieser Diskussion spielen.
Haben Sie Dokumente oder Codes, auf die Sie sich beziehen können, entweder von Ihnen selbst oder von anderen? –
Der Code, den ich zu der Zeit geschrieben habe, ist wahrscheinlich immer noch auf dsource.org im MathExtra-Projekt. Aber wie gesagt, der Compiler hat sich in den letzten 5 Jahren so sehr verbessert, dass mein Code hoffnungslos veraltet ist. Damals konnten Sie nicht einmal Strukturen zur Kompilierzeit verwenden. Jetzt können Sie auch Ausnahmen auslösen und Zeiger verwenden! Die Regex-Implementierung zur Kompilierungszeit in Phobos ist ein gutes Beispiel für neueren Code. –