Re: 'warning: unused parameter'

Stephen Leake <[email protected]>
Newsgroups gmane.comp.version-control.monotone.devel
Message-ID <[email protected]>
Stephen Leake <[email protected]> writes:

> Stephen Leake <[email protected]> writes:
>
>> The code that generates this is in simplestring_xform.hh:
>>
>> template<> inline
>> origin::type get_made_from<std::string>(std::string const & thing)
>> {
>>   return origin::internal;
>> }
>>
>> Is there a way to mark 'thing' as unused? or do we have to disable that
>> warning with -Wno-unused-parameter?
>
> I found three answers on stack overflow:
>
> 1) comment out or delete the parameter name:
>
>     a) origin::type get_made_from<std::string>(std::string const & /* thing */)
>
>     b) origin::type get_made_from<std::string>(std::string const & )
>
> 2) cast it to void:
>
>     (void)thing;
>
> I prefer 1a; it most clearly documents that we know there is a parameter
> by that name, but we are not using it in this case. Any objections?

However, that is not appropriate in this case (command.hh):

#define CMD_NO_WORKSPACE(C, name, aliases, parent, params, abstract, \
                         desc, opts)                                 \
namespace commands {                                                 \
  class cmd_ ## C : public command                                   \
  {                                                                  \
  public:                                                            \
    cmd_ ## C() : command(name, aliases, parent, false, false,       \
                          params, abstract, desc, false,             \
                          options::options_type() | opts, true)      \
    {}                                                               \
    virtual void exec(app_state & app,                               \
                      command_id const & execid,                     \
                      args_vector const & args) const;               \
  };                                                                 \
  cmd_ ## C C ## _cmd;                                               \
}                                                                    \
void commands::cmd_ ## C::exec(app_state & app,                      \
                               command_id const & execid,            \
                               args_vector const & args) const


In most uses of CMD_NO_WORKSPACE, "execid" is not used, but it is used
in some (cmd_netsync.cc clone).

So we have to use (void)exec_id in the body of each case where it is not
used.

-- 
-- Stephe
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.