小编Ste*_*eve的帖子

为什么Fortran POINTER需要TARGET?

为什么Fortran 90规范指定(5.2.8)必须使用TARGET关键字将POINTER与之关联?为什么不是每种类型都是有效的TARGET?

例如,

INTEGER, POINTER :: px
INTEGER, TARGET :: x
x = 5
px => x
Run Code Online (Sandbox Code Playgroud) 有效的语法,但是
INTEGER, POINTER :: px
INTEGER :: x
x = 5
px => x
不是有效.

为什么一定要这样?

fortran pointers

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

缺少msvcr80.dll

如果编译库中缺少C++运行时msvcr80.dll,是否有任何方法可以确定用于创建库的版本或使其在更高版本的msvcr80.dll上运行?

c++ windows dll dependencies

11
推荐指数
2
解决办法
7490
查看次数

手动复制 Repo 文件后重建 Git 历史记录

我一直在使用手动复制的存储库副本,不幸的是,它没有历史记录。现在已经找到了具有大量历史记录的旧版 repo。我从头开始创建的回购(红色)并结合历史回购的历史(蓝色)的最佳选择是什么?

混帐

git version-control

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

如何检查opencv窗口是否已关闭

如何检查opencv窗口是否已关闭?

我想要做:

cvNamedWindow("main", 1);

while(!cvWindowIsClosed("main"))
{
    cvShowImage("main", myImage);   
}
Run Code Online (Sandbox Code Playgroud)

但这些没有这样的cvWindowIsClosed(...)函数!

c c++ opencv

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

在Visual Studio 2008 C++的Header中自动指定.LIB

是否可以在Visual Studio 2008中自动链接c ++静态库?或者,使用标准方法是否有改进?

我正在开发一组c ++库,并且链接/测试它们非常痛苦.通常的方法是在测试客户端中指定.lib文件,但是现在列表已经变得非常大(我自己的libs,opencv,boost等)并且我总是在调试和发布模式之间切换时遗漏了一些东西,当我在项目属性中打开链接器时,列表会滚动一段时间.

我希望我可以自动指定如果客户端#includes项目还应链接到指定的.lib(调试/发布).这是可能的,还是有一种替代方法可以帮助管理最小的用户交互链接?

c++ static-linking visual-studio-2008

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

Boto3 客户端创建速度很慢

我在 AWS Lambda 上运行 boto3,但获取 boto3 客户端非常慢。我目前正在 AWS Lambda 上运行 python3.9 运行时,它为 s3 资源创建大量预签名 url。

使用 boto3 生成 url 所需的关键代码行是

print("Getting boto3")
self.s3_client = boto3.client('s3')
print("Got client s3")
Run Code Online (Sandbox Code Playgroud)

令人震惊的是,根据cloudwatch中的日志,上面一行代码的执行时间足足有2000ms:

2023-04-18T13:34:18.891-04:00   Getting boto3
2023-04-18T13:34:20.733-04:00   Got client s3
Run Code Online (Sandbox Code Playgroud)

这是正常现象吗?我可以让它跑得更快吗?我看到一篇旧帖子指出,通过显式传递凭据或增加内存大小可以提高客户端获取速度。看起来很奇怪,基本的s3接口不能在不到2s的时间内获取。

python amazon-web-services boto3

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

如何忽略 Git LFS 无法找到源

我得到了一个带有 LFS 的旧存储库,但缺少一些(可能较旧的)文件,因此我无法推送:

git push -u origin
Locking support detected on remote "origin". Consider enabling it with:
  $ git config lfs.https://gitlab.com/gitlabaccount/repo.git/info/lfs.locksverify true
Unable to find source for object 43cb9e6d1d15bb8d31af911aa69a15a67174c5 (try running git lfs fetch --all)                                                                                                                                           
Uploading LFS objects:  87% (600/691), 546 MB | 0 B/s, done
error: failed to push some refs to 'git@gitlab.com:gitlabaccount/repo.git'
Run Code Online (Sandbox Code Playgroud)

据称我的同事跑了git lfs fetch --all,但没有解决问题。

我真的很想要一份最新的,所有的历史,以及一个现在可以工作的版本。我并不是真的担心旧文件,我的偏好是完成推送并丢失一些丢失的 lfs 文件,但 lfs 错误不会让我失望。

Gitlab 允许我在项目中禁用 lfs,但我不知道如果我这样做,大小/限制会发生什么。不确定在服务器或客户端上启用然后禁用它的正确程序是什么。或者,是否有推送的“忽略丢失的文件”选项?

git push gitlab git-lfs

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

打开CV 2.2包含目录丢失

我使用CMake和Visual Studio 2008 Standard安装了几个安装了OpenCV 2.2的Windows 7 64位系统.CMake在C:\ libs\OpenCV-2.2.0\build中生成所有内容,Visual Studio 2008无需投诉即可编译所有内容.

但是,每次我在各种机器上执行此过程时,我发现include目录(C:\ libs\OpenCV-2.2.0\build\include\opencv2)要么为空,要么差不多.我通常最终会围绕编译不同版本并在随机项目文件上进行搜索,直到它出现并且每次我认为我已经弄清楚了.然而,随着每次新的安装我都回到了开始.

这是使用Visual Studio 2008在Windows 7 64位上使用64位构建OpenCV 2.2的已知问题吗?是否有一个已知的解决方法?

这里的各种问题似乎暗示着同样的事情,在线指南要么陈旧,要么根本没有引用问题.

c++ opencv visual-studio

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

简明的Python 3.x批量字典查找

我有大量的字符串,我想转换为整数.在Python 3.7中执行列表字典查找的最简洁方法是什么?

例如:

d = {'frog':1, 'dog':2, 'mouse':3}
x = ['frog', 'frog', 'mouse']
result1 = d[x[0]]
result2 = d[x]
Run Code Online (Sandbox Code Playgroud)

result等于1result2不可能:

TypeError                                 Traceback (most recent call last)
<ipython-input-124-b49b78bd4841> in <module>
      2 x = ['frog', 'frog', 'mouse']
      3 result1 = d[x[0]]
----> 4 result2 = d[x]

TypeError: unhashable type: 'list'
Run Code Online (Sandbox Code Playgroud)

一种方法是:

result2 = []
for s in x:
    result2.append(d[s])
Run Code Online (Sandbox Code Playgroud)

这导致[1, 1, 3]但需要一个for循环.这对大型列表来说是最佳的吗?

python dictionary python-3.x

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

User Defined Literals for a String versus for a Hex Value

Regarding this question, why does a a user defined literal for a hex value map to a different string literal operator than a string does? That is, why does the code

std::vector<uint8_t> val1 = 0x229597354972973aabbe7_hexvec;
Run Code Online (Sandbox Code Playgroud)

map to

std::vector<uint8_t> operator"" _hexvec(const char*str)
{
    // Handles the form 0xFFaaBB_hexvec and 0Xf_hexvec
    size_t len = strlen(str);
    return convertHexToVec(str, len);   
}
Run Code Online (Sandbox Code Playgroud)

while the code

std::vector<uint8_t> val2 = "229597354972973aabbe7"_hexvec;
Run Code Online (Sandbox Code Playgroud)

maps to

std::vector<uint8_t> operator"" _hexvec(const char*str, std::size_t len)
{
    // Handles the conversion form "0xFFAABB"_hexvec …
Run Code Online (Sandbox Code Playgroud)

c++ user-defined-literals c++11

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

OpenCV 将所有负值转换为零

我想实现一个函数,它接受 acv::Mat并将所有负值设置为零。执行此操作的最直接操作似乎是此处threshold记录的函数,以便该函数pos(x)

void pos(cv::Mat x, cv::Mat result)
{           
    cv::threshold(x, result, 0, 0, CV_THRESH_TOZERO);
    return;
}
Run Code Online (Sandbox Code Playgroud)

这是将所有负值设置为零的最合适方法还是有更快或更直接的方法?

c++ opencv

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

检查C++ 11中的失效日期

我正在使用C++ 11,我希望根据其发布日期计算项目的到期日期.如果超过30天前发出的项目,则应该过期:

#include <ctime>

bool isExpired() {

    std::chrono::system_clock::time_point tend = tstart + std::chrono::hours(30 * 24);
    std::chrono::system_clock::time_point tnow = std::chrono::system_clock::now();

    bool expired = tnow >= tend;
    return expired;
}
Run Code Online (Sandbox Code Playgroud)

但是,我似乎无法简明地输入开始日期.其他一些问题表明有些人喜欢

auto ymd = jun/9/2017; // Yields a year_month_day type
std::chrono::system_clock::time_point tstart = sys_days(ymd);
Run Code Online (Sandbox Code Playgroud)

可能在C++ 11中工作,但Xcode肯定不喜欢它,我不确定我是否跨越了C++ 14及以上的功能.

在c ++ 11中执行此计算的简洁方法是什么?

c++ time c++11

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

Visual Studio 2022 上的 C++ last_write_time 返回巨大的数字

我正在编写一个简单的 c++20 程序来获取文件的最后修改时间。在 MacOS 上,它工作正常,并返回昨天修改的文件的 Unix 纪元时间(以秒为单位)。然而,在装有 Visual Studio 2022 的 Windows 上,下面的代码Got Modified Time of: 13314844775根据此处的 Unix 时间戳工具返回 369 年之后的结果。如何正确转换?

#include <iostream>
#include <filesystem>
#include <chrono>

int main()
{
    std::string fileName = "test.txt";    
    
    auto modTime = std::filesystem::last_write_time(std::filesystem::path(fileName));
    auto epoch = modTime.time_since_epoch();
    auto converted = std::chrono::duration_cast<std::chrono::seconds>(epoch);
    auto counts = converted.count();    
    std::cout << "Got Modified Time of: " << counts << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

c++ windows visual-studio c++20

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