我的C ++代码中有关“ Assert”功能的信息有误

时间:2018-10-01 11:58:07

标签: c++

我正在从教科书中复制代码,但是事情出了错

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;
    }

1 个答案:

答案 0 :(得分:1)

assert()仅接受一个参数:要检查的条件。如果检查失败,则会打印行号和检查的条件。

因此,您的代码应为:

assert((pos>=0) && (pos <= cnt));