Won't see as function declaration
I'm getting some mysterious syntax errors. Anywhere I declare grid::region& as the return type of a function, I get trouble. I expect it's some little typo mistake, but I can't find it after combing a while.
Code:
simulator.h:25: error: ‘region’ declared as a ‘virtual’ field
simulator.h:25: error: expected ‘;’ before ‘(’ token
simulator.h:48: error: expected ‘;’ before ‘(’ token
simulator.h:53: error: expected `;' before ‘private’
simulator.h:72: error: expected ‘;’ before ‘(’ token
simulator.h:73: error: expected `;' before ‘}’ token
Code:
class thread_method
{
public:
virtual bool wait() = 0;
virtual grid::data_type get_sum(const grid::data_type & piece) = 0;
virtual grid::data_type get_max(const grid::data_type & piece) = 0;
virtual grid::region & region(std::vector<grid::region>::size_t index) = 0;
};
class single_thread : public thread_method
{
public:
bool wait() { return true; }
grid::data_type get_sum(const grid::data_type & piece) { return piece; }
grid::data_type get_max(const grid::data_type & piece) { return piece; }
grid::region & region(std::vector<grid::region>::size_t index)
{
if(index) throw std::string("single_thread requested region index other than 0");
return r;
}
private:
grid::region r;
};
Code:
class grid
{
. . .
typedef std::vector<span> region;
. . .
};