необъяснимая синтаксическая ошибка, определяющая пул потоков внутри определения класса - PullRequest
0 голосов
/ 18 октября 2010

У меня есть следующее определение класса, и по какой-то причине я не могу определить пул потоков внутри самого определения класса.Там написано: синтаксическая ошибка: идентификатор 'numberofpoolthreads' Я пытался определить его непосредственно в классе, но он дает мне такую ​​же синтаксическую ошибку, кто-нибудь знает, почему это так?

#include "stdafx.h"
#include <boost/threadpool.hpp>
#include <boost/threadpool/pool.hpp>
#include <boost/threadpool/detail/pool_core.hpp>

typedef boost::threadpool::fifo_pool resolverpool;

class ResolverThreadPoolManager
{
public:
    ResolverThreadPoolManager::ResolverThreadPoolManager(int numberofpoolthreads);
    ResolverThreadPoolManager::~ResolverThreadPoolManager();

    resolverpool p(numberofpoolthreads);

private:
    int numberofpoolthreads;    
};

Ответы [ 2 ]

1 голос
/ 18 октября 2010

Эта строка: resolverpool p(numberofpoolthreads); недопустима в определении класса.Вам нужна переменная-член, которую вы затем инициализируете в конструкторе.например:

class ResolverThreadPoolManager
{
public:
    explicit ResolverThreadPoolManager(int numberofpoolthreads);
    ...

private:
    const resolverpool p;
};

ResolverThreadPoolManager::ResolverThreadPoolManager(int numberofpoolthreads)
    : p(numberofpoolthreads)
    {}
0 голосов
/ 18 октября 2010

В твоей линии
resolverpool p (количество потоков);
аргумент "numberofpoolthreads" не является типом, поэтому это некорректное объявление. Может быть,
resolverpool p (int numberofpoolthreads);
? Я предполагаю, возможно, неправильно, что ваше сообщение об ошибке также указывает на то, в какой строке произошла ошибка, что может помочь определить, где в файле находится ошибка. (Хотя, как правило, указывает только «ошибка в этой или некоторой предыдущей строке».)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...