Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Di Mär 19, 2024 09:48

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 
Autor Nachricht
 Betreff des Beitrags: C++20 Concepts
BeitragVerfasst: Fr Jan 25, 2019 11:50 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2621
Wohnort: Berlin
Programmiersprache: Go, C/C++
In C++20 wird eine Spracherweiterung rein kommen, die schon gut 10 Jahre in entwicklung ist und sich um die reduzierung von Template Fehlern reduzieren soll, sowie Code Compliance zur Compile Time ermöglichst. Die rede ist von concepts und requires keyword, welche hier erklärt werden und hier findet man vorgefertigte constraints in der STL.

Mit dem Sprachfeature kann man z.B. sicher gehen, dass der Datencontainer für SIMD aligned und in der passenden größe ist, der Datentyp für ein Container moveable ist oder der Container für ein Algorithmus random access unterstützt oder thread safe makiert ist.
Das konnte man auch vorher aber nun ist es ganz klar kommuniziert, da statt ein Fehler irgendwo tief im Template basierten Code ein unverständlichen Fehler wirft, wird ein Fehler am Template geworfen, dass der übergebene Template Parameter nicht dem concept entspricht.
Code:
  1. template<ScalableVector T>//Wird hier ein Fehler werfen, wenn der Parameter nicht mindestens 16Byte aligned und numerischen ist.
  2. T& Matrix44::operation*(T& B){
  3.   ...
  4.   return B;
  5. }
  6. template<class T>
  7. T& Matrix44::operation*(T& B){
  8.   ...//Der Fehler wird irgendwo in anderen Code auftreten, z.B. in der intrinsic implementierung mit ner mega langen liste von Schritten zum Code.
  9.   return B;
  10. }

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 18 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.037s | 17 Queries | GZIP : On ]