小编rsj*_*ffe的帖子

如何将类成员函数作为回调传递?

我正在使用一个API,要求我将函数指针作为回调传递.我正在尝试从我的类中使用此API,但是我遇到了编译错误.

这是我从构造函数中做的:

m_cRedundencyManager->Init(this->RedundencyManagerCallBack);
Run Code Online (Sandbox Code Playgroud)

这不编译 - 我收到以下错误:

错误8错误C3867:'CLoggersInfra :: RedundencyManagerCallBack':函数调用缺少参数列表; 使用'&CLoggersInfra :: RedundencyManagerCallBack'创建指向成员的指针

我尝试使用这个建议&CLoggersInfra::RedundencyManagerCallBack- 对我不起作用.

对此有何建议/解释?

我正在使用VS2008.

谢谢!!

c++ function-pointers callback c++03

66
推荐指数
4
解决办法
10万
查看次数

派生类构造函数的Noexcept promise:可以在没有对基础构造函数使用noexcept的情况下使用吗?

假设我有一堂课

class C : public B {
  public:
    C() noexcept;
}
Run Code Online (Sandbox Code Playgroud)

说明noexcept符是否需要基类的相同承诺?也就是说,当我考虑使用noexcept时,我只是看看C :: C()的行为还是我还需要考虑B :: B()是否可能抛出异常?

例如,如果B :: B抛出异常,那么它会传播到C :: C还是要求新类实例的代码? - 如果传播到C :: C,那么如果构造函数的基类不是noexcept,那么这将是避免构造函数noexcept的一个原因.

c++ exception c++11

9
推荐指数
1
解决办法
295
查看次数

批处理脚本如果用户按Ctrl + C在退出前执行命令

我写了一个net use开头和net use /DELETE结尾的脚本.

但是如果用户决定按Ctrl+ C并退出脚本,我需要做一个net use /DELETE.

那可能吗?我在谷歌上找不到任何东西.

cmd batch-file exit

7
推荐指数
1
解决办法
1万
查看次数

在早期版本的Lua中使用varargs,但希望与5.2+兼容

我目前正在为Lightroom插件编写代码.Lightroom不使用5.2版.我有以下功能,目前工作正常,但我担心好像Lightroom升级到更新的版本,此代码将中断.在这种情况下,您是否有以独立于lua版本的方式提供varargs处理的建议?

以下代码检查函数F是否用作表needsModule中的键.如果是这样,它组成一个函数,包括调用将模块更改为键F指向的值,然后调用函数F及其参数.

local function wrapFOM(F,...)
  local openModule = needsModule[F]
  if openModule == nil then
    return function() return F(unpack(arg)) end
  end
  return function()
    if LrApplicationView.getCurrentModuleName() ~= openModule then
      LrApplicationView.switchToModule(openModule)
    end
    return F(unpack(arg)) --proper tail call
  end
end
Run Code Online (Sandbox Code Playgroud)

lua

6
推荐指数
1
解决办法
240
查看次数

gitab webhooks:当触发"Build events"时,会发送什么类型的json?

我想用.net写一个webapi来接收gitlab webhooks在触发"Build Events"时发送的json.我想在.net上写一个与json类型相同的数据模型.但我不知道发送的json类型.

有没有人可以告诉我在触发"构建事件"时发送的json的类型还是举个例子?

.net webhooks build-events gitlab

5
推荐指数
0
解决办法
65
查看次数

std :: async监视线程时间

场景:我通过(线程安全)队列获取请求.每个请求都需要在单独的线程中处理.有可能该函数(实际上通过_popen调用Java程序并轮询其输出)需要很长时间.从主线程我需要一个机制来指示这种情况(基本上,测量线程运行时).在我的例子中,我试图通过一些时间信息来"丰富"std :: future.样本无缝运行 - 但我不确定这是否是正确的方法.而且,即使它是'正确'的方式,我也无法为'CFutureTest'编写复制构造函数和赋值运算符,我想控制自己.

这是一个非常简单的演示,模仿我想要实现的目标:

typedef std::future<int> FutureResultInt;

int ThreadFunc() {
  std::random_device rd;
  std::mt19937 mt(rd());
  const int iRand = std::uniform_int_distribution<int>(2000, 6000)(mt);
  std::cout << "ThreadFunc waiting for [" << iRand << "] ms ... " << std::endl;
  std::this_thread::sleep_for(std::chrono::milliseconds(iRand));
  std::cout << "ThreadFunc [" << iRand << "] done" << std::endl;
  return iRand;
}

class CFutureTest {
 public:
  CFutureTest() = delete;
  CFutureTest(FutureResultInt&& fr)
      : m_start(std::chrono::system_clock::now()), m_result() {
    m_result = std::move(fr);
  };

  int GetAge() const {
    return std::chrono::duration_cast<std::chrono::milliseconds>(
               std::chrono::system_clock::now() - m_start)
        .count();
  } …
Run Code Online (Sandbox Code Playgroud)

c++ multithreading future

5
推荐指数
0
解决办法
87
查看次数

为什么需要包含C++头文件的保护?

我粗略地了解它的作用.我不明白为什么它不是默认值?有些头文件需要多次包含的用例有哪些?

c++ header-files

5
推荐指数
1
解决办法
195
查看次数

C ++在我的计算机上工作正常,但在leetcode上出现地址清理程序堆缓冲区溢出错误

我试图解决leetcode问题“ 929.唯一的电子邮件地址”,该代码在我的计算机上的Visual Studio Code上运行良好,但是当我将其粘贴到leetcode上时,出现了地址清理器堆缓冲区溢出错误。代码如下所示:

class Solution {
 public:
  int numUniqueEmails(vector<string>& emails) {
    string::iterator it;
    for (int i = 0; i < emails.size(); i++) {
      for (it = emails[i].begin(); *it != '@'; it++) {
        if (*it == '.') {
          emails[i].erase(it);
          it--;
        }
        if (*it == '+') {
          while (*it != '@') {
            emails[i].erase(it);
          }
          break;
        }
      }
      sort(emails.begin(), emails.end());
      for (int j = 0; j < emails.size(); j++) {
        if (emails[j] == emails[j + 1]) {
          emails.erase(emails.begin() + j);
          j--;
        } …
Run Code Online (Sandbox Code Playgroud)

c++

5
推荐指数
1
解决办法
3318
查看次数

检测按键

我需要检测一个按键,而无需用户按Enter。最优雅的方式是什么?

即,如果用户Q按了字母,而没有按enter,程序将执行某些操作。

c

4
推荐指数
1
解决办法
3824
查看次数

比较击键 - 装配CCS64

我想比较汇编中的击键(CCS64).如果我连续输入相同的键我想做一些例子:A A=这样做

但如果我输入这个:A B=做别的事

建议?

assembly c64 6502 6510

4
推荐指数
1
解决办法
1737
查看次数