<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/chromium-s-span-over-initializer-list-success-story-zkzr1vben" -->

---
title: Chromium’s span-over-initializer-list success story
description: A close reading of a Chromium commit by Peter Kasting that added a converting constructor from initializer_list to base::span, mirroring the C++26 P2447...
canonical: https://daily.dev/posts/chromium-s-span-over-initializer-list-success-story-zkzr1vben
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Chromium’s span-over-initializer-list success story | daily.dev
og:description: A close reading of a Chromium commit by Peter Kasting that added a converting constructor from initializer_list to base::span, mirroring the C++26 P2447...
og:url: https://daily.dev/posts/chromium-s-span-over-initializer-list-success-story-zkzr1vben
og:image: https://api.daily.dev/og/posts/ZKzR1vBEn.png
og:image:alt: Chromium’s span-over-initializer-list success story
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Chromium’s span-over-initializer-list success story

**[Arthur O'Dwyer](https://daily.dev/sources/quuxplusone)** · 3 min read · 0 upvotes · 0 comments

## Summary

A close reading of a Chromium commit by Peter Kasting that added a converting constructor from initializer_list to base::span, mirroring the C++26 P2447 proposal. The post walks through real call sites in the codebase that were simplified by the new constructor, showing how three different workarounds (temporary std::array, doubled curly braces, explicit span cast) all converged on cleaner natural syntax. Two 'failure cases' are also examined where the change couldn't fully simplify code due to the lack of CTAD and C++ grammar restrictions on braced initializer lists after operators.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://quuxplusone.github.io/blog/2026/03/19/p2447-success-story/>

## Similar posts on daily.dev

- [C\+\+26: Span improvements](https://daily.dev/posts/c-26-span-improvements-81hatqzbi) · Sandor Dargo · 0 upvotes · 0 comments
- [C\+\+26: Standard library hardening](https://daily.dev/posts/c-26-standard-library-hardening-eykurnwet) · Sandor Dargo · 23 upvotes · 1 comments
- [C Constructs That Still Don’t Work in C\+\+ — and a Few That Changed](https://daily.dev/posts/c-constructs-that-still-don-t-work-in-c-and-a-few-that-changed-0okhcujer) · Hacker News · 1 upvotes · 0 comments
- [Modern C\+\+ use in Chromium](https://daily.dev/posts/modern-c-use-in-chromium-n7nlqufi1) · Hacker News · 3 upvotes · 0 comments

---

Tags: [#c++](https://daily.dev/tags/c++), [#chromium](https://daily.dev/tags/chromium)

[View this post on daily.dev](https://daily.dev/posts/chromium-s-span-over-initializer-list-success-story-zkzr1vben)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Chromium’s span-over-initializer-list success story","url":"https://daily.dev/posts/chromium-s-span-over-initializer-list-success-story-zkzr1vben","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/chromium-s-span-over-initializer-list-success-story-zkzr1vben"},"datePublished":"2026-03-19T19:11:59.715Z","dateModified":"2026-03-19T19:12:26.654Z","description":"A close reading of a Chromium commit by Peter Kasting that added a converting constructor from initializer_list to base::span, mirroring the C++26 P2447...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/e3a9783d2dc46301158849c96a3b989b?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/e3a9783d2dc46301158849c96a3b989b?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Arthur O'Dwyer","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Arthur O'Dwyer","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/a789aa2fcdb64c219980d6d6901791e9","url":"https://daily.dev/sources/quuxplusone"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/chromium-s-span-over-initializer-list-success-story-zkzr1vben","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"c++,chromium","timeRequired":"PT3M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Arthur O'Dwyer","item":"https://daily.dev/sources/quuxplusone"},{"@type":"ListItem","position":3,"name":"Chromium’s span-over-initializer-list success story"}]}
```

