我正在从教科书中复制代码,但是事情出了错
void moveToPos(int pos) {
assert((pos>=0) && (pos <= cnt), "Position out of range");
curr = head;
for (int i = 0; i< pos; i++)
curr = curr->next;
}
编译器说
[Error] there are no arguments to 'Assert' that depend on a template parameter,
so a declaration of 'Assert' must be available [-fpermissive].
我不知道这一点。请帮助我。
谢谢你们。 这是我第一次在StackOverflow上提问。请原谅我不知道如何格式化。 这是可能与此问题有关的代码。
#ifndef LLIST_H
#define LLIST_H
#include <bits/stdc++.h>
#include "List.h"
void moveToPos (int pos){
Assert ((pos>=0)&&(pos<=cnt),"Position out of range");
curr= head;
for(int i=0;i<pos;i++){
curr=curr->next;
}
}
const E& getValue() const{
Assert ((curr->next !=NULL),"No value");
return curr->next->element;
}
答案 0 :(得分:1)
assert()
仅接受一个参数:要检查的条件。如果检查失败,则会打印行号和检查的条件。
因此,您的代码应为:
assert((pos>=0) && (pos <= cnt));