-2

我是 Visual Studio 和 IDL 的新手。我有一个 .idl 文件,Visual Studio 正在从 idl 文件生成 .h 和 .cpp 文件。

在生成的代码中,为 IDL 文件中的“in”属性添加了“const”。我想摆脱这个“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”

4

1 回答 1

1

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

  1. const_cast剥离/覆盖 const 说明符
  2. 用于进一步操作的上下文的本地堆栈副本
于 2013-07-08T10:58:42.823 回答