Я смотрел на синтаксический анализатор из примера boost:: asio, и мне было интересно, почему частный член работает как is_char()
static
?
class request_parser
{
...
private:
static bool is_char(int c);
...
};
Используется в функции потреблять, которая не является статической функцией:
boost::tribool request_parser::consume(request& req, char input)
{
switch (state_)
{
case method_start:
if (!is_char(input) || is_ctl(input) || is_tspecial(input))
{
return false;
}
...
Только функции-члены могут вызывать is_char()
, а статическая функция-член не вызывает is_char()
. Итак, есть ли причина, почему эти функции являются статическими?