问题列表 - 第318027页

来自 time_t 的 std::filesystem::file_time_type - 如何?

我想std::filesystem::file_time_type从 a创建 a std::time_t,但不知道如何做。

例子:

time_t t = 1337;
std::filesystem::file_time_type ft = ...; //how?
Run Code Online (Sandbox Code Playgroud)

理想情况下,我希望它能够与 c++17 一起使用,但我也会采用 c++20 解决方案。

c++ c++17 c++20

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

非捕获 lambda 不会降级为函数指针

下面是一个典型的 C 函数,它采用经典函数指针作为参数:

int DoThingy( const char* stuff, int(*helper)(int))
{
    int result = 0;
    //...call helper...
    return result;
}
Run Code Online (Sandbox Code Playgroud)

下面我用一个非捕获 lambda 来调用上面的内容,它神奇地“降级”为函数指针。在“A”处,转换是隐式的。在“B”处,它是明确的。都好。

void UseThingy()
{
    auto lam = [](int)->int {
        return 42;
    };

    int i;
    i = DoThingy( "hello", lam); //"A" works

    int (*ptr)(int) = lam;
    i = DoThingy( "hello", ptr); //"B" works
}
Run Code Online (Sandbox Code Playgroud)

但在这个新示例中,回调函数的签名取决于模板类型:

template <typename T>
int DoThingy2( const char* stuff, int (*helper)(T))
{
    int result = 0;
    //...call helper...
    return result;
}
Run Code Online (Sandbox Code Playgroud)

当我尝试使用上面的这个版本时,“C”行甚至无法编译。然而“D”处的显式版本是有效的。什么?为什么这些不一样?请注意,当我在“E”处给出显式模板参数时,它可以工作,但当然可以<int>从 的签名推断出来lam …

c++ lambda templates

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

如何从 HTML 中的 JavaScript 文件调用函数

我一直在尝试将我的 Three.js 函数链接到 html 中,以便当鼠标单击某个元素时,js 函数会在外部 js 文件中运行。我以为我已经做对了所有事情并遵循了正确的步骤,但仍然无法工作

我尝试修改库和外部文件的目录并移动脚本标记以查看它是否更改了任何内容,但它是一种本来可以工作的东西,但它不会,所以我已经用完了解决方案。

我已将 js 文件放在同一文件夹中,并且我确信该函数的命名正确

<!DOCTYPE html>
<html>

<head>

  <title> Solar System </title>
  <style>
    body {
      margin: 0;
    }

    canvas {
      width: 100%;
      height: 100%
    }
  </style>
</head>

<body>
  <script type="module" src="./index.js"> </script>

  <link href="./styles.css" rel="stylesheet" />
  <script src="js/threex.domevents.js"></script>
  <script src="./js/three.module.js"></script>
  <script src="./js/threex.linkify.js"></script>


  <div id="planet-menu">
    <ul>
      <li onclick="selectPlanet('Mercury')">Mercury</li>
      <li onclick="selectPlanet('Venus')">Venus</li>
      <li onclick="selectPlanet('Earth')">Earth</li>
      <li onclick="selectPlanet('Mars')">Mars</li>
      <li onclick="selectPlanet('Jupiter')">Jupiter</li>
      <li onclick="selectPlanet('Saturn')">Saturn</li>
      <li onclick="selectPlanet('Uranus')">Uranus</li>
      <li onclick="selectPlanet('Neptune')">Neptune</li>
    </ul>
  </div>



  <script type="module" src="./index.js "> </script>


</body>

</html>
Run Code Online (Sandbox Code Playgroud)

javascript

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

如何将一组 Python 列表转换为 numpy 数组?

我需要将一组数组的类型设置为np.ndarray每个数组的类型。由于我需要多次执行此操作,因此我正在尝试一个for循环,在执行循环时似乎可以正确地从 转换为list,np.ndarray但是一旦结束,每个数组仍然是类型list,下面的这个块帮助我意识到它正在发生,但我不知道为什么会发生

那么,为什么会发生这种情况呢?以及如何解决它?提前致谢

import numpy as np

pos = [1,1,1]
vel = [1,1,2]
# vel = np.array([1,1,2])
accel = [1,1,3]

print('\nredefining...')
for elem in [pos,vel,accel]:
    # checks if the array is of the np.ndarray class
    print(type(elem))
    if not isinstance(elem, np.ndarray):
        elem = np.array(elem)
        print(type(elem))
    print('---------------------------')

print('\nafter the redefinition:')

print(type(pos))
print(type(vel))
print(type(accel))
Run Code Online (Sandbox Code Playgroud)

输出:

redefining...
<class 'list'>
<class 'numpy.ndarray'>
---------------------------
<class 'list'>
<class 'numpy.ndarray'>
---------------------------
<class 'list'>
<class 'numpy.ndarray'>
---------------------------

after the …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy list numpy-ndarray

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

修复“lambda 没有捕获默认值”

我第一次使用 lambda 并遇到了一个我无法解决的问题。

我收到多个错误:

<source>: In lambda function:
<source>:7:19: error: 'x' is not captured
    7 |         int sum = x + y;
      |                   ^
<source>:6:20: note: the lambda has no capture-default
    6 |     auto lambda = []() {
      |                    ^
<source>:4:9: note: 'int x' declared here
    4 |     int x = 5, y = 10;
      |         ^
<source>:7:23: error: 'y' is not captured
    7 |         int sum = x + y;
      |                       ^
<source>:6:20: note: the lambda has no capture-default …
Run Code Online (Sandbox Code Playgroud)

c++ lambda c++11

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

什么是 .ch 文件?

在查看 CPython 源代码时,我发现了一个名为listobject.ch的文件。我不确定这个文件扩展名“.ch”是什么。该文件混合了函数原型和函数定义。是否有理由将 .c 添加到扩展名而不只是使其成为 .h 文件?

我在 Google 上找不到有关此文件扩展名的任何信息,因为他们删除了搜索查询中的特殊字符,因此我得到了有关 .ch 文件的信息。

c file header-files

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

在视图上显示/不显示 spring 验证消息的原因

我尝试创建一个验证:

@Size(min = 6, message = "min 6 characters needed")
private String name;
Run Code Online (Sandbox Code Playgroud)

现在,当我使用带参数的方法(用POST注释)时:

@Valid LoginDetails loginDetails
Run Code Online (Sandbox Code Playgroud)

验证失败时(表单中输入的字符少于 6 个),不会显示错误消息。但如果我用这个作为论据:

@Valid @ModelAttribute("logindetails") LoginDetails loginDetails
Run Code Online (Sandbox Code Playgroud)

显示错误消息 - 我想了解为什么会发生这种情况。

这是最小的可重现代码:

package com.example.validationspring;


import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;

public class LoginDetails {

    @NotNull(message = "Username cannot be null")
    @Size(min = 6, message = "Username must be at least 6 characters")
    private String userName;

    // Standard getters and setters
    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = …
Run Code Online (Sandbox Code Playgroud)

java spring-boot

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

虚拟线程应该很快消亡吗?

JDK 开发人员建议永远不要池化虚拟线程,因为创建和销毁虚拟线程的成本非常低。我对池的想法有点困惑,因为池通常意味着两件事:

  1. 资源应该被重复利用
  2. 资源在发布之前将有很长的生命周期

我知道 JDK 开发人员希望我们永远不要重用虚拟线程,而生命周期问题让我感到困惑,因为如果有多个虚拟线程的生命周期与应用程序本身一样长,那么听起来可能像是没有重用的池化。

那么,虚拟线程是否应该快速死亡,或者具有较短的有界生命周期,或者多个虚拟线程阻塞、偶尔被唤醒以处理某些任务并且具有非常长的生命周期是否可以?

java multithreading project-loom virtual-threads java-21

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

Firebase 应用程序分发中的新上传内容突然无法下载

我们的团队一直在使用 Firebase Distribution 来测试我们的应用程序,没有遇到任何问题。然而,今天我们无法再下载了。Playstore 页面显示如下:在此输入图像描述

到目前为止我们做了什么:

  • 清除 Play 商店数据和缓存。
  • 清除了 App Tester 数据和缓存。
  • 重新启动设备。
  • 遵循 Firebase 分发常见问题解答。
  • 遵循 Play 商店故障排除指南。
  • 尝试了不同的构建。
  • 安装在多个设备上。

我们还注意到,对于那些较旧的工作版本,Play 商店页面显示内部测试版本。但是,对于新上传的版本,它会显示我们应用程序的实际 Play 商店页面。

还有其他人遇到这个问题吗?

google-play firebase-app-distribution internal-app-sharing

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

通过 ssh 传输参数时避免字符串拆分

为了启动分布式计算,我编写了一个运行脚本,用于ssh登录远程计算机并启动从标准输入读取的脚本。但是,此运行脚本需要将用户提供的参数正确传输$@到远程计算机。但是,我注意到参数没有正确传输。

比方说,task.sh远程计算机应该执行的脚本是

i=0
for p in "$@"; do
  echo "#${i}: ${p}"
  i=$((i+1))
done
Run Code Online (Sandbox Code Playgroud)

该脚本只是迭代参数并逐行打印它们,例如,

$ bash task.sh hello world 'in one line'
#0: hello
#1: world
#2: in one line
Run Code Online (Sandbox Code Playgroud)

我的简化运行脚本run.sh现在如下所示:

ssh user@remote.example.com "bash -s $@" < task.sh
Run Code Online (Sandbox Code Playgroud)

但是,这将打印:

$ bash run.sh hello world 'in one line'
#0: hello
#1: world
#2: in
#3: one
#4: line
Run Code Online (Sandbox Code Playgroud)

当我$@用', ie引用时

ssh user@remote.example.com "bash -s '$@'" < task.sh
Run Code Online (Sandbox Code Playgroud)

打印以下内容:

$ …
Run Code Online (Sandbox Code Playgroud)

linux ssh bash shell

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