Я використовую декларацію 'using' в C ++, щоб додати std :: string та std :: vector до локального простору імен (щоб зберегти введення зайвих 'std ::' s).
using std::string;
using std::vector;
class Foo { /*...*/ };
Яка сфера дії цієї декларації? Якщо я зроблю це в заголовку, чи введе ці "використання" декларації у кожен файл cpp, що включає заголовок?
usingдекларацію ( директива fortiori ) взагалі в заголовок , навіть у просторі імен! Дивіться сферу використання декларації в просторі імен для проблем, які це викликає.
usingв області та класах функцій є безпечним щодо обговорюваної проблеми.
usingдекларацію (чиusingдирективу) на область дії файлу у файл, що включає файл / заголовок! Це спричинить головний біль у користувачів заголовка.