2013-05-27 3 views
1

В C++ void используется для указания функции без возвращаемого значения. Затем есть указатели void, которые могут использоваться для указания практически любой переменной, независимо от типа. Существует также литье в пустоту, что может пригодиться, если вы хотите подавить предупреждения о неиспользуемых возвращаемых значениях функции.Что такое использование пустоты?

Однако, в дополнение ко всем перечисленным выше, кажется, что используется для void -keyword, о котором я не знаю. Этот случай использования существует в следующем коде (появляется в Mesa GL исходного кода):

class count_block_size : public program_resource_visitor { 
public: 
    count_block_size() : num_active_uniforms(0) 
    { 
     /* empty */ 
    } 

    unsigned num_active_uniforms; 

private: 
    virtual void visit_field(const glsl_type *type, const char *name, 
          bool row_major) 
    { 
     (void) type; 
     (void) name; 
     (void) row_major; 
     this->num_active_uniforms++; 
    } 
}; 

Это использование пустоты в конце этого куска кода озадачивает меня. Что такое void в круглых скобках?

ответ

0

Похоже, что отливка от void используется для устранения предупреждений о неиспользуемых переменных. Такие компиляторы и/или настройки предоставляют такие предупреждения. Таким образом, отбрасывание в void здесь не делает ничего, кроме молчания компилятора о возможных предупреждениях.