Compiler Error C3535
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
Baca juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk