当从Visual Studio中的IDL文件生成CPP代码时,如何删除属性“in”的“const”?

时间:2013-07-08 10:51:18

标签: c++ visual-studio-2010 idl

我是视觉工作室和IDL的新人。 我有一个.idl文件,visual studio正在从idl文件生成.h和.cpp文件。

在生成的代码中,为IDL文件中的“in”属性添加“const”。 我想摆脱这个“常规”...请有人帮助我。

生成的头文件具有以下功能:

virtual CosTransactions::Coordinator_ptr recreate(
                    const CosTransactions::PropagationContext& ctx,
                    CosTransactions::otid_t_out tid) = 0;

virtual CosTransactions::Coordinator_ptr tmf_start(
                   const CosTransactions::otid_t& tid) = 0;

我想知道如何避免在recreate()和tmf_start()的参数列表中使用“const”

1 个答案:

答案 0 :(得分:1)

由于参数本身为[in],因此不会进一步更改参数。这就是const首先有意义的原因。你没有解释为什么你想剥去常量。如果说明符对你来说是一个障碍(例如,内部方法将非const &作为参数),有两种简单直接的方法可以解决它:

  1. const_cast去除/覆盖const说明符
  2. 进一步操作的上下文的本地堆栈副本