-2

我知道这已被问过很多次,但我无法理解这个问题。这是我的头文件:

#ifndef TASK_H
#define TASK_H

#include "storage_adaptors.hpp"
#include <boost/numeric/ublas/vector.hpp>

class Task {
private:
    boost::numeric::ublas::vector<double> taskPosistionConstraint;
    boost::numeric::ublas::vector<double> initialPosition;
    boost::numeric::ublas::vector<double> finalPosition;
    double pathLength;
    int taskType;

public:
    Task();
    Task(double* _initialPoint, double* _finalPoint, int type);
    double getLength();
    int getTaskType();

    ~Task();
};

#endif  /* TASK_H */

这是cpp文件:

#include "Task.h"


const int TASK_SIZE = 3;

Task::Task() {
}

Task::~Task() {
}

Task::Task(double* _initialPoint, double* _finalPoint, int type) {

    finalPosition = make_vector_from_pointer(TASK_SIZE,_finalPoint);
    initialPosition = make_vector_from_pointer(TASK_SIZE, _initialPoint);

}

错误发生在其中make_vector_from_pointer定义的函数上,该函数storage_adaptors.hpp包含在Task.h其中boost hpp file。如果将标头添加到类头文件中,为什么我会出现超出范围的错误:

Task.cpp:21:错误:“make_vector_from_pointer”未在此范围内声明

4

1 回答 1

4

如果它是一个提升功能,不应该boost::make_vector_from_pointer'吗?或者它所在的任何命名空间(如果不是直接在 boost 命名空间中)。

于 2012-06-07T11:18:06.933 回答