I am creating an instance Dataset::Ptr data and then I need to pass this instance to another method, but I am having trouble with passing "data" as an argument.

The Dataset class is defined as follows:

```
//Definition of "Dataset" class in Datset.h
class Dataset : public Objects
{
public:
    typedef boost::shared_ptr<Dataset> Ptr;

...

        void foo(); 

```

In the class where I instanciate a "Dataset" object I have:

```
void doWork(Dataset::Ptr* ds)
{
ds->foo();------>Here I get the error that foo is not defined. ds doesnt have any 
}

void Function(){
Dataset::Ptr* ds;
....do something with ds....
doWork(&ds);
}

```

The error is that boost::shared\_ptr cannot be changed into Dataset::Ptr.

What am I doing wrong? How can I pass the instance properly?

Thanks