Dalam beberapa presentasi konferensi baru-baru ini saya mendengar Bjarne Stroustrup dan yang lainnya menyebutkan pedoman pengkodean baru untuk C ++ dan beberapa jenis yang mendukungnya.
Secara khusus, saya ingat contoh span<T>
alih - alih (T* p, int n)
sebagai parameter untuk suatu fungsi (pada waktu sekitar 32:00 dalam pembicaraan); tapi saya juga ingat saran untuk digunakan array_view<T>
. Apakah keduanya merupakan alternatif tetapi konsep yang sama? Atau apakah saya membingungkan hal-hal dan sebenarnya tidak begitu terkait?
Saya tidak bisa menemukan definisi otoritatif tentang apa yang seharusnya mereka berdua lakukan.
array_view
itu diganti namanya menjadispan
.array_view
mengambang.Jawaban:
Kami berbicara dengan orang-orang di kelompok kerja perpustakaan di komite standar . Mereka ingin agar
array_view
mereka mencoba menjadi standar untuk dibaca saja. Untuk pedoman inti, kami membutuhkan abstraksi yang dibaca dan ditulis. Untuk menghindari benturan antara standar (potensial) dan pustaka dukungan pedoman (GSL), kami mengganti nama (baca dan tulis) kamiarray_view
menjadispan
: https://github.com/microsoft/gsl .sumber
const array_view<T>
plusarray view<const T>
tidak memuaskan?span
akan menyelamatkan banyak programmer dari membuat kesalahan konyol. Saya pikir mengkomunikasikan perubahan baru ini bisa dilakukan dengan cara yang lebih jelas. Saya hanya bertanya-tanya - bukankah ini akan menjadi sesuatu yang dapat diselesaikan dengan jelas dengan iterator akses acak biasa? Apakah tipe ditambahkan hanya untuk kejelasan?Dalam CppCoreGuidlines , aslinya
array_view
diubah namanya menjadispan
.Lihat: https://github.com/isocpp/CppCoreGuidelines/pull/377
Ini dijelaskan sebagai berikut:
sumber
Dokumen P0122R (2016-02-12) dari Library Evolution Working Group (LEWG)
secara resmi mengganti nama jenis
array_view
menjadispan
:Kami juga bisa membaca:
Di bab berikutnya, dokumen ini menyajikan akses baca-saja dan baca-tulis ( bisa berubah ):
Lihat juga Panduan Review Library Dukungan:
span<T>
dari Marius Bancila (maret 2016) yang didefinisikanspan
sebagai:sumber