Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bolehkah Auto Digunakan sebagai Argumen Fungsi dalam C?

Bolehkah Auto Digunakan sebagai Argumen Fungsi dalam C?

Susan Sarandon
Susan Sarandonasal
2024-11-19 01:16:02417semak imbas

Can Auto Be Used as a Function Argument in C  ?

Bolehkah Auto Digunakan Sebagai Argumen dalam C ?

Dalam C , menghantar auto sebagai argumen kepada fungsi lain telah menjadi subjek perbahasan. Sebelum ini, ia tidak boleh dilakukan kerana kekaburan dalam inferens jenis. Walau bagaimanapun, C 20 memperkenalkan perubahan ketara yang membolehkan kefungsian ini.

C 20: Parameter Auto Tanpa Kekangan

C 20 membenarkan auto digunakan sebagai jenis parameter fungsi, dikenali sebagai "parameter auto tanpa kekangan." Ciri ini memberikan fleksibiliti maksimum dengan membenarkan mana-mana jenis diluluskan tanpa kekangan.

int function(auto data)
{
    // Do something, no constraints on data
}

Sintaks ini bersamaan dengan mentakrifkan templat fungsi yang disingkatkan, yang boleh menerima sebarang jenis.

C 20: Parameter Auto Terkekang

Selain parameter auto tanpa kekangan, C 20 juga menyokong parameter auto terkekang menggunakan konsep. Konsep ialah kekangan yang menentukan keperluan untuk jenis.

void function(const Sortable auto& data)
{
    // Do something that requires data to be Sortable
    // Assuming there is a concept named Sortable
}

Dalam contoh ini, konsep Sortable mengekang jenis data kepada jenis yang melaksanakan antara muka Boleh Isih.

Templat Fungsi Disingkat

Parameter auto tanpa kekangan boleh digunakan untuk mencipta templat fungsi yang disingkatkan. Templat fungsi yang disingkat ialah fungsi templat yang menyimpulkan hujah templatnya daripada hujah fungsi. Ini membolehkan pengisytiharan fungsi yang lebih ringkas dan fleksibel.

template<typename T>
void print(T data)
{
    std::cout << data << std::endl;
}

int main()
{
    auto data = 42;
    print(data); // Assumed to print 42
}

Dalam contoh ini, fungsi cetakan ialah templat fungsi yang disingkatkan yang menyimpulkan jenis data berdasarkan hujah yang disediakan.

Atas ialah kandungan terperinci Bolehkah Auto Digunakan sebagai Argumen Fungsi dalam C?. 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