Запитання з тегом «function-templates»

13
Чи може шаблон функції члена класу бути віртуальним?
Я чув, що шаблони функцій членів класу C ++ не можуть бути віртуальними. Це правда? Якщо вони можуть бути віртуальними, що є прикладом сценарію, в якому можна було б використовувати таку функцію?

4
Чому шаблон функції не може бути частково спеціалізованим?
Я знаю, що специфікація мови забороняє часткову спеціалізацію шаблону функції. Я хотів би знати обгрунтування, чому це забороняє? Вони не корисні? template<typename T, typename U> void f() {} //allowed! template<> void f<int, char>() {} //allowed! template<typename T> void f<char, T>() {} //not allowed! template<typename T> void f<T, int>() {} //not …

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); …

5
Як повернути правильний тип даних у шаблони?
#include <iostream> using namespace std; template <class X, class Y> Y big(X a, Y b) { if (a > b) return (a); else return (b); } int main() { cout << big(32.8, 9); } Тут я використовую шаблони в CPP, тому коли я викликаю функцію в bigобхід аргументів doubleі intвведення, …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.