Я смотрел на кусок кода, написанный другими, когда увидел это:
a(), void(), b();
где оба a
и b
являются экземплярами пользовательского класса шаблонов, который предназначен для работы как функция путем перегрузки operator()
, которая возвращает сам вызывающий экземпляр.
Часть класса:
template <typename T>
class SomeClass{
public:
SomeClass& operator()(void);
const SomeClass& operator()(void) const;
}
Операторы return для обеих перегрузок следующие:
template <typename T>
SomeClass<T>& SomeClass<T>::operator()(void){
// do stuff
return *this;
}
template <typename T>
const SomeClass<T>& SomeClass<T>::operator()(void) const{
// do stuff
return *this;
}
Что делает void()
между ними? Я чувствую это странно.