Я использовал функцию «вызова» GDB в течение последних нескольких недель, и это кажется очень полезным Код, как показано ниже
void VectorPrint(const std::vector<int>& v)
{
std::cout << "start printing vector\n";
for (int i = 0; i < v.size(); ++i) {
std::cout << v[i];
if (i != v.size() - 1)
std::cout << "\n";
}
//std::cout << "\n printing end \n";
}
(gdb) call VectorPrint (any1DVectorhere) Это выполняет указанную выше функцию и печатает содержимое вектора на консоли.
Проблема, с которой я столкнулся, заключается в том, что я не могу вызвать ту же функцию, если она шаблонная, например ниже. GDB не распознает шаблонные функции
template <typename Traits>
template <typename myVec>
void MyClass<Traits>::VectorPrint(const std::vector<myVec>& v)
{
std::cout << "start printing vector\n";
for (int i = 0; i < v.size(); ++i) {
std::cout << v[i];
if (i != v.size() - 1)
std::cout << "\n";
}
//std::cout << "\n printing end \n";
}
Может ли кто-нибудь предложить, как получить функциональность call , работающую с GDB в этом случае использования? Любая помощь приветствуется.
Заранее большое спасибо!