Saya menggunakan deklarasi 'using' di C ++ untuk menambahkan std :: string dan std :: vector ke namespace lokal (untuk menghemat pengetikan 'std ::' yang tidak perlu).
using std::string;
using std::vector;
class Foo { /*...*/ };
Apa ruang lingkup deklarasi ini? Jika saya melakukan ini di header, apakah itu akan menyuntikkan deklarasi 'menggunakan' ini ke dalam setiap file cpp yang menyertakan header?
usingdeklarasi ( perintah fortiori ) di header sama sekali , bahkan di dalam namespace! Lihat cakupan penggunaan deklarasi dalam namespace untuk masalah yang disebabkannya.
usingdalam ruang lingkup kelas dan fungsi aman terkait masalah yang dibahas.
usingdeklarasi (atauusingarahan) pada ruang lingkup file dalam file / header yang disertakan! Itu akan menyebabkan sakit kepala bagi pengguna header.