小编Win*_*gha的帖子

如何在C++中定义宏函数返回void或else


我定义了以下两个函数宏来检查线程类中的退出标志。

//use this in run()
#define CHECK_EXIT  if( exitFlag_ ) {\
    //do something\
    return;\
}\

//use this in function
#define CHECK_EXIT_IN_FUNC  if( exitFlag_ ) {\
    //do something\
    return false;\
}\
Run Code Online (Sandbox Code Playgroud)

我必须单独定义它们,因为返回值不同。
我可以在一个宏中定义它吗?
我用谷歌搜索,但找不到答案。
感谢您的任何建议。

c++ macros

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

在QTreeView中拖放,removeRows未调用

我在拖放时遇到一些问题QTreeView

我在模型中设置了 flag并Qt::MoveAction重新实现了等。该模型继承了.removeRows()dropMimeData()QAbstractItemModel

当我拖放时,mimeData()dropMimeData()会自动调用,并且也会自动dropMimeData()调用insertRows()。但removeRows()没有被调用,所以拖动的项目仍然存在。我用谷歌搜索,但他们说他们的removeRows()电话是自动呼叫的。

  • removeRows()为什么我的之后没有被叫到dropMimeData()
  • 我应该removeRows()手动拨入dropMimeData()吗?
  • 如果是这样,我怎样才能知道QModelIndex拖动开始的时间?

当开始拖动时,在 中mimeData(),我可以将索引保存在私有成员中,但看起来不太好。

任何意见,将不胜感激。

treeview qt drag-and-drop

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

什么是类型代码?

我在读“重构”马丁·福勒

有一个术语“类型代码”,我以前从未见过。

什么是类型代码?

refactoring terminology

2
推荐指数
1
解决办法
3206
查看次数

bash shell 脚本显示分段错误

我的 shell 脚本在启动时打印分段错误。

看门狗.sh:

#!/bin/bash
while true
do
    processCnt=`ps ax | grep $1 | grep -v grep | grep -v watchdog | wc -l`
    if [ $processCnt -lt 1 ]; then
        $1 
    fi  
    sleep 2
done
Run Code Online (Sandbox Code Playgroud)

脚本获取程序名称作为参数。
我还在 run.sh 中同时使用不同的参数运行这个脚本 4 次。

运行.sh:

./watchdog.sh hqservicedemon &
./watchdog.sh relayservicedemon &
./watchdog.sh rtspservicedemon &
./watchdog.sh httpcontrolservicedemon &
Run Code Online (Sandbox Code Playgroud)

当我运行 run.sh 时出现错误:

./watchdog.sh: line xx:  7316 segmentation fault (core dumped)
Run Code Online (Sandbox Code Playgroud)

经过一些测试,在 run.sh 中只运行一个 watchdog.sh 时看起来没问题。
我在 shell 脚本中做错了什么?
谢谢你的任何建议。

编辑:我的恶魔有问题,而不是脚本。修复恶魔后,脚本运行良好。

linux bash shell

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

标签 统计

bash ×1

c++ ×1

drag-and-drop ×1

linux ×1

macros ×1

qt ×1

refactoring ×1

shell ×1

terminology ×1

treeview ×1