Hello everyone,

I am trying to declare, in a header file, a class that has a member of type "vector<double>" (the code is included below).  The compiler complains that I haven't included the appropriate namespace (the error message reads, "ISO C++ forbids declaration of ‘vector’ with no type"), and I understand that it is looking for this:

using namespace boost::numeric::ublas;

However, I tried putting it in the header file in various places (haven't programmed in C++ in 10 years and couldn't find any online documentation to clarify this specific situation), and still no luck.  I am definitely doing something wrong, but cannot reason out the error, as it probably has to do with the specific syntax conventions.  Any help is appreciated!

Thanks,
-Al

P.S.  Code in header file:

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//  File "airspace-graph-rectilinear-edges.h"
typedef char* string;
const int PHYSICAL_SPACE_DIMENSION = 2;
//  Information needed about a waypoint used in an airspace: name and physical position
class WaypointConcept{
 private:
  using namespace boost::numeric::ublas;
  string waypoint_name;
  vector<double> waypoint_position_xyh(PHYSICAL_SPACE_DIMENSION);
 public:
  string GetWaypointName();
  vector<double> GetWaypointPosition();
}

class AirspaceGraphConcept PropertyGraphConcept<class Graph, class WaypointConcept, class vertex_index_t>;
typedef Vertex* GraphPathType;  
typedef string FlightIDType;
typedef boost::unordered_map<std::FlightIDType, GraphPathType> FlightIDToPathAssignmentType;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Code in the .cpp file (which includes the above header file) I am trying to compile:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include <boost/lambda/lambda.hpp>
#include <iostream>
#include <iterator>
#include <algorithm>
#include <boost/numeric/ublas/io.hpp>
#include <boost/numeric/ublas/vector.hpp>
#include "airspace-graph-rectilinear-edges.h"

int main()
{
    using namespace boost::numeric::ublas;

    vector<double> v(3);
    for (unsigned i = 0; i < v.size(); ++ i)
      v (i) = 2.01*double(i);
    
    std::cout << v << std::endl;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////