Запитання з тегом «name-lookup»


4
Чому ADL не знаходить шаблонів функцій?
Яка частина специфікації C ++ обмежує пошук, залежний від аргументу, від пошуку шаблонів функцій у наборі пов’язаних просторів імен? Іншими словами, чому останній виклик mainнижче не вдається скомпілювати? namespace ns { struct foo {}; template<int i> void frob(foo const&) {} void non_template(foo const&) {} } int main() { ns::foo f; …

2
Чому ця функція шаблону не веде себе так, як очікувалося?
Я читав про функції шаблону і заплутався у цій проблемі: #include <iostream> void f(int) { std::cout << "f(int)\n"; } template<typename T> void g(T val) { std::cout << typeid(val).name() << " "; f(val); } void f(double) { std::cout << "f(double)\n"; } template void g<double>(double); int main() { f(1.0); // f(double) f(1); …

3
Чи потрібне повне кваліфіковане ім’я класу до загального масштабу для визначення позалінійних функцій членів?
Це питання змусило мене замислитись про те, чи завжди корисно / необхідно повністю кваліфікувати імена класів (включаючи глобального оператора області) у визначенні функції поза класу. З одного боку, я ніколи не бачив цього робити раніше (а синтаксис, як це правильно зробити, здається неясним). З іншого боку, пошук імен C ++ …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.