Bagikan melalui


Compiler Error C3533

'type': parameter tidak boleh memiliki jenis yang berisi 'auto'

Parameter metode atau templat tidak dapat dideklarasikan dengan auto kata kunci jika opsi default /Zc:auto compiler berlaku.

Untuk memperbaiki kesalahan ini

  1. auto Hapus kata kunci dari deklarasi parameter.

Contoh

Contoh berikut menghasilkan C3533 karena mendeklarasikan parameter fungsi dengan auto kata kunci dan dikompilasi dengan /Zc:auto.

// C3533a.cpp
// Compile with /Zc:auto
void f(auto j) {} // C3533

Contoh berikut menghasilkan C3533 dalam mode C++14 karena mendeklarasikan parameter templat dengan auto kata kunci dan dikompilasi dengan /Zc:auto. (Dalam C++17, ini adalah definisi yang valid dari templat kelas dengan parameter templat non-jenis tunggal yang jenisnya disimpulkan.)

// C3533b.cpp
// Compile with /Zc:auto
template<auto T> class C {}; // C3533

Baca juga

kata kunci otomatis
/Zc:auto (Deduce Variable Type)