惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
G
Google Developers Blog
WordPress大学
WordPress大学
M
MIT News - Artificial intelligence
D
DataBreaches.Net
云风的 BLOG
云风的 BLOG
爱范儿
爱范儿
Microsoft Security Blog
Microsoft Security Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Blog — PlanetScale
Blog — PlanetScale
T
Tailwind CSS Blog
S
SegmentFault 最新的问题
阮一峰的网络日志
阮一峰的网络日志
博客园 - 三生石上(FineUI控件)
酷 壳 – CoolShell
酷 壳 – CoolShell
Recent Announcements
Recent Announcements
T
The Blog of Author Tim Ferriss
I
InfoQ
MyScale Blog
MyScale Blog
V
V2EX
B
Blog
罗磊的独立博客
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

heise online News

Machine Learning mit Python – KI und Deep Learning in 5 Sessions erklärt Porsche-Chef Leiters plant umfassenden Konzernumbau Studie: KI bleibt oft im Testlauf stecken iX-Workshop: Grundlagen und Prinzipien eines modernen IT-Managements Missing Link: Aus für De-Mail – warum das „@“ das eingekringelte „e“ besiegte Top 10: Android Auto & Carplay nachrüsten – das beste Display fürs Auto im Test BOS-Funk: ETSI standardisiert Funk für Behörden Repair-Cafés jubeln: Bundestag beschließt Ökodesign-Reform für Nachhaltigkeit Google wehrt sich gegen Monopol-Urteil CERN-Rat beschließt Strategie-Update: FCC-ee soll LHC-Nachfolger werden Product Owner AI Day 2026: Konferenz und Workshop für KI im Produktmanagement Taskforce sieht keine Knappheit bei Kerosin Aus dem Weg! E-Scooter Navee UT5 Max mit Kuhfänger und brachialer Power im Test Krankenhaus-IT: Geldmangel und schlechte Prozesse gefährden Digitalisierung „The Boroughs“: Opa entdeckt Stranger Things iX-Workshop: Lokales Active Directory gegen Angriffe absichern Google Pics und Tiger-Selfies – die Fotonews der Woche 21/2025 Fitbit-App bekommt großes Update auf Version 5.0 und heißt jetzt Google Health Zwischen Wellen, Weite und Wissenschaft: Die Bilder der Woche 21 Sonnenenergie effizient speichern und nutzen | c’t uplink Cyberangriff auf Abrechnungsdienstleister betrifft viele Kliniken Lizenzstreit und Cloud-Zwang: Bambu Lab unter massivem Druck Vom Postweg ins BundID-Konto: Bundestag stimmt für digitales Führungszeugnis Windows 11 ist ein kompletter Verkehrsunfall Europol legt VPN-Dienst lahm TV-Deals zur WM: Die besten Fernseher von OLED bis XXL zum Tiefstpreis Nvidia will mit Vera-Prozessoren nach der CPU-Krone greifen Googles XR-Brillen auf der I/O: Project Aura & Prototyp ausprobiert Proxmox VE 9.2 mit Dynamic Load Balancer und Linux Kernel 7.0 Großstadt blockiert Überwachungssoftware Palantir
Mehr Codekontrolle mit C++26 Contracts
Andreas Fertig · 2026-06-15 · via heise online News

Die gute Nachricht gleich vorweg: Contracts sind Bestandteil von C++26. Das Standardisierungskomitee hat beim finalen Treffen keine nennenswerten Änderungen mehr vorgenommen. Vorschläge für eine andere Syntax oder ein verringertes Featureset sind vorerst vom Tisch. C++ ist jetzt eine von vielen Sprachen, die Contracts als Sprachmittel anbieten. Eiffel und Ada besitzen das Feature schon lange. Aus Eiffel stammt auch der Begriff Design by Contracts (DbC), der rechtlich geschützt ist.

Die Idee hinter Contracts ist, Nutzenden einer Funktion die möglichen Anforderungen an die Funktionsparameter direkt und in Code mitzuteilen. Damit weiß ein Aufrufer, welche Werte für einen Parameter erlaubt sind. In C++ steht dafür pre zur Verfügung. Auch das Ergebnis einer Funktion lässt sich mit einem Contract auszeichnen. Er gibt eine Garantie für das Resultat und ist durch post angegeben.

  • Das Standardisierungskomitee hat Contracts in der bislang diskutierten Form in C++26 aufgenommen.
  • Contracts sind ein Sprachfeature, das Schnittstellenbedingungen für Funktionen definiert.
  • Die vier Auswertungssemantiken enforce, ignore, observe und quick-enforce definieren Verhaltensweisen für den Fall, dass eine Bedingung nicht erfüllt ist.

Beides ist nicht neu, jede Funktion hat Anforderungen an ihre Daten. Bisher ließen diese sich in C++ jedoch nur durch Dokumentation mitteilen. Der Nachteil dieses Ansatzes ist, dass Dokumentation und Code auseinanderfallen können und dass Entwickler die Dokumentation finden und lesen müssen. In C++26 werden Contracts direkt in C++-Code dokumentiert, also der Sprache, in der auch entwickelt wird, und ein Programm prüft diese Anforderungen zur Laufzeit.

Das war die Leseprobe unseres heise-Plus-Artikels "Mehr Codekontrolle mit C++26 Contracts". Mit einem heise-Plus-Abo können Sie den ganzen Artikel lesen.