Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
tidak dapat menyimpulkan tipe untuk 'type1' dari 'type2'
Jenis variabel yang dideklarasikan oleh auto
kata kunci tidak dapat disimpulkan dari jenis ekspresi inisialisasi. Misalnya, kesalahan ini terjadi jika ekspresi inisialisasi mengevaluasi ke void
, yang bukan jenis.
Untuk memperbaiki kesalahan ini
Pastikan bahwa jenis ekspresi inisialisasi bukan
void
.Pastikan bahwa deklarasi bukan penunjuk ke jenis dasar. Untuk informasi selengkapnya, lihat Jenis Dasar.
Pastikan bahwa jika deklarasi adalah penunjuk ke jenis, ekspresi inisialisasi adalah jenis penunjuk.
Contoh
Contoh berikut menghasilkan C3535 karena ekspresi inisialisasi mengevaluasi ke void
.
// C3535a.cpp
// Compile with /Zc:auto
void f(){}
int main()
{
auto x = f(); //C3535
return 0;
}
Contoh berikut menghasilkan C3535 karena pernyataan mendeklarasikan variabel x
sebagai penunjuk ke jenis yang disimpulkan, tetapi jenis ekspresi inisialisasi ganda. Akibatnya, pengkompilasi tidak dapat menyimpulkan jenis variabel.
// C3535b.cpp
// Compile with /Zc:auto
int main()
{
auto* x = 123.0; // C3535
return 0;
}
Contoh berikut menghasilkan C3535 karena variabel p
mendeklarasikan penunjuk ke jenis yang disimpulkan, tetapi ekspresi inisialisasi bukan jenis penunjuk.
// C3535c.cpp
// Compile with /Zc:auto
class A { };
A x;
auto *p = x; // C3535