问题列表 - 第283183页

如何修复整数溢出警告

我有一些代码检查整数是否在[?2 ^ 31 + 1,2 ^ 31?1]。但是,在编译期间,将引发整数溢出警告。

long int tmp_l = strtol(tokens[8].c_str(),NULL,10);

if (tmp_l >= ( (int32_t)-1 * ( ((int32_t)1<<31) - (int32_t)1) ) && 
        tmp_l <= ( ((int32_t)1 << 31) - (int32_t)1) ) {

    long int in_range = tmp_l;

} else {
    cerr << "ERROR: int not in range. Expected [(-2^31)-1, (2^31)-1]. ";
    cerr << "Found: " << tmp_l << endl;
}
Run Code Online (Sandbox Code Playgroud)
main.cpp:93:51: warning: integer overflow in expression [-Woverflow]
     if (tmp_l >= ((int32_t)-1 * (((int32_t)1<<31) - (int32_t)1) ) &&
                                  ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ …
Run Code Online (Sandbox Code Playgroud)

c++ integer-overflow

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

使用 ios 快捷方式时如何删除“运行时显示”选项

我正在实现 ios 快捷方式意图。我只是在 myProject 中添加意图,并且不想在快捷方式选项中显示“运行时显示”。

如何删除“运行时显示”选项?

ios sirikit sirishortcuts

6
推荐指数
0
解决办法
274
查看次数

Segue之后View Controller消失了

我有一个客户选项卡控制器,该控制器带有一个自定义图标,当用户单击弹出菜单时,该图标带有3个选择。当我单击第一个选项时,它应该带我到新的视图控制器,但是,当我单击它时,视图控制器仅出现一秒钟,然后再次消失。我不确定为什么,但是这是我的客户标签栏代码:

import UIKit
import PopMenu

class TabBarController: UITabBarController, UITabBarControllerDelegate {

    override func viewDidLoad() {
        delegate = self
    }

    func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
        if viewController.title == "for custom action" {
            let manager = PopMenuManager.default

            let action1 = PopMenuDefaultAction(title: "Scan Barcode", didSelect: { action in

                self.performSegue(withIdentifier: "showScanBarcode", sender: nil)
                print("\(String(describing: action.title)) is tapped")
            })

            let action2 = PopMenuDefaultAction(title: "Action 2", didSelect: { action in

                print("\(String(describing: action.title)) is tapped")
            })

            let action3 = PopMenuDefaultAction(title: "Action 3", image: …
Run Code Online (Sandbox Code Playgroud)

ios segue swift

5
推荐指数
2
解决办法
274
查看次数

从 git commit 中删除大文件

我将一个 150MB 的视频添加到我的项目源文件中,并在不知不觉中提交了它。然后,我尝试git push提交到我的远程存储库,并注意到推送挂起了一段时间,然后最终失败,吐出以下内容:

Counting objects: 17, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (16/16), done.
Writing objects: 100% (17/17), 145.48 MiB | 138.00 KiB/s, done.
Total 17 (delta 13), reused 0 (delta 0)
remote: Resolving deltas: 100% (13/13), completed with 12 local objects.
remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
remote: error: Trace: 8b4191f1a1055e7dea4412f80b5125d2
remote: error: See http://git.io/iEPt8g for more information. …
Run Code Online (Sandbox Code Playgroud)

git

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

常量折叠的具体规则是什么?

我刚刚意识到 CPython 似乎对待常量表达式,它们表示相同的值,在常量折叠方面有所不同。例如:

>>> import dis
>>> dis.dis('2**66')
  1           0 LOAD_CONST               0 (2)
              2 LOAD_CONST               1 (66)
              4 BINARY_POWER
              6 RETURN_VALUE
>>> dis.dis('4**33')
  1           0 LOAD_CONST               2 (73786976294838206464)
              2 RETURN_VALUE
Run Code Online (Sandbox Code Playgroud)

对于第二个示例,应用了常量折叠,而对于第一个示例,虽然两者表示相同的值,但并非如此。它似乎与指数的值或结果的大小无关,因为以下表达式也被折叠了:

>>> dis.dis('2.0**66')
  1           0 LOAD_CONST               2 (7.378697629483821e+19)
              2 RETURN_VALUE
>>> dis.dis('4**42')
  1           0 LOAD_CONST               2 (19342813113834066795298816)
              2 RETURN_VALUE
Run Code Online (Sandbox Code Playgroud)

为什么前两个表达式的处理方式不同,更一般地说,CPython 遵循的常量折叠的具体规则是什么?


测试:

$ python3.6 --version
Python 3.6.5 :: Anaconda, Inc.
$ python3.7 --version
Python 3.7.1
Run Code Online (Sandbox Code Playgroud)

python cpython python-3.x constantfolding

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

小于或等于 numpy 浮点运算符?

我意识到 np.islcose() 函数可用于安全地检查浮点数是否相等。不过,目前让我感到困惑的是,使用标准 <= 运算符会得到不同的结果。例如:

add_to = 0.05
value64 = np.float64(0.3) + add_to*4
value32 = np.float32(0.3) + add_to*4
threshold = 0.5
print('is close?')
print(np.isclose(value64, threshold))
print(np.isclose(value32, threshold))
print('is less than or equals to?')
print(value64 <= threshold)
print(value32 <= threshold)
Run Code Online (Sandbox Code Playgroud)

给我

is close?
True
True
is less than or equals to?
True
False
Run Code Online (Sandbox Code Playgroud)

有没有人对此有明智的解决方法?我认为一种选择可能是为 numpy 浮点重载 python 比较运算符,并且(在该函数中)将两个浮点数四舍五入到小数点后第 8 位。但这是在速度有些重要的情况下,感觉有点麻烦。

在此先感谢您的帮助!

python floating-point numpy

3
推荐指数
2
解决办法
1619
查看次数

无法向 OData 端点添加服务引用

我刚刚完成本演练以创建 OData V3 端点

https://docs.microsoft.com/en-us/aspnet/web-api/overview/odata-support-in-aspnet-web-api/odata-v3/creating-an-odata-endpoint

我让 api 正常工作并使用 PostMan 对其进行了测试。现在我想从 .NET 客户端(控制台应用程序)使用端点,所以我跳到他们的另一个演练

https://docs.microsoft.com/en-us/aspnet/web-api/overview/odata-support-in-aspnet-web-api/odata-v3/calling-an-odata-service-from-a-网络客户端

但是,当我尝试添加服务引用时,在我输入的 URL ( http://localhost/WebAPI_OData/odata/ ) 中找不到任何服务,

无法添加指定的 OData API,因为 OData API 现在仅受 OData 客户端代码生成工具支持。

当我去网站寻找代码生成工具时,它说

OData 客户端代码生成器支持为 OData V4 服务生成客户端代理文件......它支持以下 Visual Studio:Visual Studio 2010、2012、2013、2015

下面它说

OData Connected Service 允许应用程序开发人员将他们的应用程序连接到 OData 服务(V3 和 V4)并为服务生成客户端代理文件。它支持以下 Visual Studio:

视觉工作室 2015

但是我使用的是 Visual Studio 2019。所以我真的很困惑。我们应该为 OData V3 和最新的 Visual Studio 使用哪个工具?初始教程中指出的添加服务引用的等效过程是什么。

c# visual-studio odata asp.net-web-api

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

未找到 libudev 开发包

我正在编写一个应用程序自动检测设备是否插入/拔出。

我在 Qt 框架中使用了 C++。libudev.h包含在我的代码中。我实际上通过sudo apt-get install libudev-dev以下方式成功安装了 libudev-dev 包,但 QtCreator 仍然有一条错误消息:libudev development package not found

文件.pro:

...
CONFIG   += console c++11
CONFIG   -= app_bundle
unix: CONFIG += link_pkgconfig
unix: PKGCONFIG += libudev
HEADERS += DeviceManager.h
SOURCES += main.cpp \
  DeviceManager.cpp
...
Run Code Online (Sandbox Code Playgroud)

设备管理器.h文件:

#ifndef DEVICEMANAGER_H
#define DEVICEMANAGER_H

#include <QObject>
#include <QDebug>
#include <QSet>
#include <libudev.h>

#include "DeviceModel.h"

class DeviceManager : public QObject
{
    Q_OBJECT
public:
    explicit DeviceManager(QObject *parent = 0);

    QSet<DeviceModel *> getDevices();
    QStringList getDevicePaths(); …
Run Code Online (Sandbox Code Playgroud)

linux qt udev qt5 libudev

5
推荐指数
2
解决办法
6611
查看次数

spring boot中如何保留表单上提交时的数据和无效的数据

我有一个处理密码更改的表格。

<form method="POST" th:object="${changePassword}" th:action="@{/user/change_pass}">
    <input type="password" class="form-control" id="oldpass" th:field="*{oldPassword}">
    <input type="password" class="form-control" id="newpass" th:field="*{newPassword}"
    <input type="password" class="form-control" id="confirmPass" th:field="* {confirmNewPassword}"
    <input type="submit" class="btn btn-outline-primary btn-rounded waves-effect" value="Send"/>
</form>
Run Code Online (Sandbox Code Playgroud)

在控制器中

@GetMapping(value = "/user/change_pass")
private String changePasswordPage(Model model){

    if (!model.containsAttribute("changePassword")) {
        model.addAttribute("changePassword", new ChangePassword());
    }

    return "web/view/accPasswordPage";
}

@PostMapping(value = "/user/change_pass")
private String saveNewPassword(@Valid ChangePassword changePassword, BindingResult result, Model model, RedirectAttributes redirectAttributes){
    if (result.hasErrors()) {
        redirectAttributes.addFlashAttribute("org.springframework.validation.BindingResult.changePassword", result);
        redirectAttributes.addFlashAttribute("changePassword", changePassword);
        return "redirect:/user/change_pass";
    }
    return "redirect:/user/home";
}
Run Code Online (Sandbox Code Playgroud)

当用户单击“发送”时,如果出现错误并返回,但表单数据丢失,如下所示: 在此输入图像描述

有什么办法可以让用户输入的数据不丢失但仍然保留?谢谢

spring bean-validation thymeleaf spring-boot

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

factor(0)是什么意思?

我正在进行免疫学研究,并想确定满足某些要求的基因名称。

ifng5p <- df$Gene[which(as.numeric(df$Prop1) <= df[df$Genes == "Ifng", "Prop1.5p"] 
& as.numeric(df$Prop1) >= df[df$Genes== "Ifng", "Prop1.5m"] & as.numeric(df$Prop1) <= df[df$Genes == "Ifng", "Prop1.5p"] 
& as.numeric(df$Prop1) >= df[df$Genes=="Ifng", "Prop1.5m"])]
Run Code Online (Sandbox Code Playgroud)

我期望输出基因名称(在“基因”列中),而我的输出如下:

factor(0)
49041 Levels:  0610005C13Rik 0610006L08Rik 0610009B22Rik 0610009E02Rik 0610009L18Rik ... Zzz3
Run Code Online (Sandbox Code Playgroud)

r

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