修改参数而不引用
modify parameter without reference
我正在使用一个外部库,我有一个从另一个类继承的类,具有下一个函数
void IOCallback::Open(const char* filename, bool isOpen)
我需要修改布尔值,但我不能修改代码以将其用作参考。
无论如何我能做到这一点吗?
我需要修改布尔值,但我不能修改代码以将其用作参考。
如果你的意思是这样...
bool b = false;
IOCallback callback;
callback.Open(filepath, b);
if(b) { // <- will never actually evaluate to anything but false
// do something
}
。然后,好吧,你不能。 该函数接收其参数的副本。 您可以自由地从函数内部修改参数,但您将无法以调用者能够看到所述修改的方式执行此操作。
我质疑这一要求背后的理由。 如果您编写了代码,则可以对其进行修改或添加另一个重载版本以执行所需的操作。 如果你没有编写代码并且无法修改它,那么它从一开始就没有打算改变它的参数,那么有什么收获呢?
相关文章:
- 将const引用参数初始化为默认参数会导致悬空引用吗
- 具有常量引用参数的函数模板专用化
- C++:常量引用参数
- 字符串引用参数的效率C++
- 通过非常量引用参数修改常量引用参数
- 如何将指针变量作为引用参数传递?
- C++初始化 std::function 时如何将占位符绑定到引用/引用参数?
- 移动类的成员作为常量引用参数传递
- C++带有适用于左值和右值的引用参数的函数
- constexpr 函数的常量引用参数:gcc/msvc vs clang/icc
- 如何使用类型特征将函数的通用引用参数限制为 r 值引用?
- 委托构造函数和引用参数
- 对 const 引用参数使用默认值会导致崩溃
- 为什么我们不允许将纯引用参数传递给 std::thread,但允许传递原始指针?
- 为什么我需要将默认引用参数定义为 const 以便为其分配一个左值?
- 将非左值作为常量引用参数传递.临时是在本地作用域还是在调用方作用域中创建的?
- 如何强制函数仅接受左值引用参数
- 模板引用参数推断失败C++
- 非类型引用参数可以在运行时修改,这是否意味着模板可以在运行时实例化?
- 将unique_ptr作为引用参数或常量传递unique_ptr引用