I have a class Room and it holds a vector of shared\_ptrs to Option objects like so:

```
private:
vector<shared_ptr<Option> > options;

```

But for some reason when I build, I get the following errors:

* 'shared\_ptr' : unspecialized class template can't be used as a template argument for template parameter '\_Ty', expected a real type
* 'std::tr1::shared\_ptr' : use of class template requires template argument list

Strangely, I also have a vector of shared\_ptrs, exact same syntax but there's no problem with that one.

There's also a bunch of places that bring up the error "'Option': undeclared identifier", which brings me to think it might be a problem with the Option class, but it seems to be fine. Here's the code for Option:

Option.h:

```
#pragma once
#include "Room.h"
#include <memory>

using namespace std;

class Option
{
protected:
    int id;
    char* text;

public:
    Option(void);
    Option(int, char*);
    virtual ~Option(void);
    char* getText();
    int getID();
};

```

Option.cpp:

```
#include "Option.h"
#include "Room.h"
#include <memory>
using namespace std;

Option::Option(void)
{
}

Option::Option(int newID, char* newText){
    id = newID;
    text = newText;
}

Option::~Option(void)
{
}

char* Option::getText(){
    return text;
}

int Option::getID(){
    return id;
}

```