Rumah  >  Artikel  >  pembangunan bahagian belakang  >  ## Bolehkah C 17 Mencapai Potongan Hujah Templat Kelas Separa?

## Bolehkah C 17 Mencapai Potongan Hujah Templat Kelas Separa?

Linda Hamilton
Linda Hamiltonasal
2024-10-25 06:20:28261semak imbas

## Can C  17 Achieve Partial Class Template Argument Deduction?

Potongan Argumen Templat Kelas Separa dalam C 17

Dalam C 17, Potongan Argumen Templat Kelas (CTAD) membenarkan pemotongan hujah templat berdasarkan hujah yang diserahkan kepada fungsi atau pembina. Walau bagaimanapun, proses ini pada masa ini memerlukan sama ada semua atau tiada hujah dinyatakan.

Persoalan timbul jika mungkin untuk menentukan sebahagian hujah templat dan selebihnya disimpulkan. Contohnya:

<code class="cpp">Base<V = bool> val1(1, 4.);        // U & V deduced --> Base<int, double, bool>
Base<T = bool, T =int> val2(5.);  // V deduced     --> Base<bool, int, double></code>

Walau bagaimanapun, cubaan menggunakan templat alias untuk mencapai ini, seperti:

<code class="cpp">template<class T, class U> using Base2 = Base<T, U, double>;

void func() {
    NewBase2 val(1, 2);
}</code>

menghasilkan ralat penyusunan.

Pada masa ini, CTAD tidak menyokong potongan separa. Kertas P1021R0, yang mencadangkan ciri ini, belum diterima. Walau bagaimanapun, C 20 mungkin termasuk sokongan untuk templat alias (P1814) dan agregat (P1816), yang boleh menyediakan penyelesaian.

Atas ialah kandungan terperinci ## Bolehkah C 17 Mencapai Potongan Hujah Templat Kelas Separa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn