using operator() instead of ::m_value/::value