小编iva*_*ukr的帖子

clang-format:如何将构造函数的初始值设定项列表的每个元素保留在单独的行上

我有一个这样的 C++ 类:

class A {
public:
    A() :
        m_a(someValue1),
        m_b(someValue2),
        m_c(someValue3)
    {
    }

    // .... other class members

private:
    A m_a;
    B m_b;
    C m_c;
};
Run Code Online (Sandbox Code Playgroud)

使用 clang-format 格式化此代码后,我得到:

class A {
public:
    A() :
        m_a(someValue1), m_b(someValue2), m_c(someValue3)
    {
    }

    // .... other class members

private:
    A m_a;
    B m_b;
    C m_c;
};
Run Code Online (Sandbox Code Playgroud)

即构造函数中的初始化列表被格式化为单行,直到达到他们允许的最大行长度。

我的问题是如何告诉 clang-format 将每个元素保留在自己的行上,就像在格式化之前在我的原始代码中一样?我找不到任何合适的参数。我尝试将参数 AllowShortBlocksOnASingleLine(在我看来是最合适的)设置为 true 和 false,但这对此没有影响。那么有人可以建议如何实现这种格式吗?

这是我的 .clang 格式:

BasedOnStyle: Google
AccessModifierOffset: '-4'
AlignAfterOpenBracket: DontAlign
AlignConsecutiveAssignments: 'false'
AlignConsecutiveDeclarations: 'false'
AlignEscapedNewlines: Left
AlignOperands: 'true'
AlignTrailingComments: …
Run Code Online (Sandbox Code Playgroud)

c++ llvm-clang clang-format

16
推荐指数
2
解决办法
5290
查看次数

鼠标停止在Virtual Box中运行的CentOS中单击

我在Windows上运行的VirtualBox 6中有一个CentOS 7 VM。我刚刚安装它,并立即更新了整个系统(sudo yum更新),结果安装了内核版本3.10.0-957.1.3.el7。

重新启动并登录系统后,鼠标开始工作异常。可以移动鼠标,可以打开应用程序菜单,但是在其中没有鼠标移动的反应。同样,大多数用户界面不会对鼠标单击做出反应。我已经搜索了互联网并尝试了各种方法,但是没有任何帮助。

它是全新安装,我还没有安装VirtualBox guest虚拟机。但是在安装后,一切正常,并且在更新后停止工作。有谁知道可能是什么原因以及如何解决这个问题?

使用以前的内核重新启动没有帮助。也许与X.org有关系?它也已更新。但我在/var/log/Xorg.0.log中看不到任何错误

更新#1:这个https://www.quora.com/Why-can-I-move-my-mouse-but-cannot-click-in-a-VirtualBox-with-Ubuntu食谱已对您有所帮助。我已经创建了/etc/X11/xorg.conf.d/01-mouse.conf具有以下内容的鼠标配置文件

Section "InputDevice"
    Identifier  "Mouse0"
    Driver      "mouse"
    Option      "Protocol" "auto"
    Option      "Device" "/dev/input/event3"
    Option      "ZAxisMapping" "6 7"
EndSection
Run Code Online (Sandbox Code Playgroud)

实际的鼠标设备路径(/dev/input/event3)来自最新版本/var/log/Xorg.0.log-查找“ VirtualBox鼠标集成”。

更新#2:我发现如果您是第一次登录,则以某种方式运行控制台,然后重新启动桌面管理器服务(sudo service gdm restart)-它会带您回到登录屏幕-然后,第二次登录一切正常,即使没有此类文件。无法解释自己可能是什么原因。

更新#3: RH确认了此问题并进行了修复。 https://access.redhat.com/solutions/3893421

更新#4:今天的更新后,问题已经不复存在。现在我有:

Linux centos7 3.10.0-957.10.1.el7.x86_64 #1 SMP Mon Mar 18 15:06:45 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

centos centos7 centos7.6

10
推荐指数
2
解决办法
4724
查看次数

go-staticcheck:应该使用简单的通道发送/接收,而不是使用单个案例进行选择(S1000)

我正在使用 Go 1.16.4。我正在尝试处理这样的代码:

func (pool *myConnPool) GetPooledConnection() (*myConnection, error) {
    go func() {
        conn, err := pool.createConn()
        if err != nil {
            return
        }
        pool.connections <- conn
    }()
    select { // <<<< golint warning here
    case conn := <-pool.connections:
        return pool.packConn(conn), nil
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到以下 Go linter 警告:should use a simple channel send/receive instead of select with a single case (S1000)在代码中标记的位置。谁能解释一下如何解决这个问题吗?我对 Go 通道还不太有经验。

channel go static-code-analysis

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

如何确定两个 Win32 API 句柄代表同一个对象?

假设我有两个句柄:

HANDLE h1;
HANDLE h2;
Run Code Online (Sandbox Code Playgroud)

并且两者都收到了由某些 Windows API 函数产生的值 - 特别是,我对调用CreateFile(). 我如何确定h1h2引用相同的底层对象 - 如果是CreateFile()- 相同的文件、目录或设备?是否有一些 API 可以确定?

c++ winapi handle

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

从v8 :: Script :: Compile()获取错误消息

我正在打电话Script::Compile(),结果返回一个空句柄。我已经找到了这种方法,最后发现

 i::Handle<i::SharedFunctionInfo> result = i::Compiler::Compile(str, ....
Run Code Online (Sandbox Code Playgroud)

返回空句柄。这意味着编译错误。

但是,有人知道在这种情况下是否有办法从编译器获取错误消息,以了解发生错误的位置?

c++ v8

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

使用纯 Windows API 设置 StaticText 控件文本,无 MFC

我正在尝试使用纯 Windows API 在 Visual C++ 中为 Windows 编写一个非常小的图形程序。程序由一个带有几个按钮和静态文本控件的对话框组成。对话框从资源初始化。我需要做的是在对话框初始化时,静态文本填充一些值,即动态计算。我坚持他的观点,因为我完全不知道如何动态更改对话框上的静态文本值。请指教。我认为必须调用 SetWindowText(),但问题是 - 如何确定对话框上特定静态文本的 hWnd?

c++ windows winapi

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

使用谷歌v8预处理器的示例

我需要解析JavaScript代码并获取AST元素树.我正在尝试使用Google V8 JavaScript引擎.有人试过Google V8预分析器吗?任何代码示例?或者引用采用Google V8预处理器的开源项目?还有nayone有经验起诉预先解析的数据来实现AST吗?

javascript v8

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

图像水平调整算法

我需要在C ++算法中实现用于调整图像级别的功能,该功能类似于Photoshop或GIMP中的“级别”功能。即输入是:要调整的彩色RGB图像,点,黑点,中间点,从/到值的输出。但是我还没有找到有关如何执行此调整的任何信息。可能有人向我推荐算法描述或要学习的材料。

到目前为止,我自己想出了以下代码,但是它并没有给出预期的结果,类似于我在GIMP中看到的那样,图像变得太亮。以下是我当前的代码片段:

const int normalBlackPoint = 0;
const int normalMidtonePoint = 127;
const int normalWhitePoint = 255;
const double normalLowRange = normalMidtonePoint - normalBlackPoint + 1;
const double normalHighRange = normalWhitePoint - normalMidtonePoint;

int blackPoint = 53;
int midtonePoint = 110;
int whitePoint = 168;
int outputFrom = 0;
int outputTo = 255;

double outputRange = outputTo - outputFrom + 1;
double lowRange = midtonePoint - blackPoint + 1;
double highRange = whitePoint - midtonePoint;
double fullRange = whitePoint …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm image-processing

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