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

Bolehkah Auto Digunakan sebagai Argumen Fungsi dalam C?

Susan Sarandon
Lepaskan: 2024-11-19 01:16:02
asal
461 orang telah melayarinya

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
}
Salin selepas log masuk

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
}
Salin selepas log masuk

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
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan