Я использовал функцию «вызова» 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";
}
Может ли кто-нибудь предложить, как заставить функцию вызова работать с GDB в этом случае использования? Любая помощь высоко ценится.
Заранее большое спасибо !