小编Top*_*ter的帖子

Qt:在使用foreach宏迭代的同时删除QList元素?

我是Qt的新手,并试图学习成语.

foreach文件说:

Qt在进入foreach循环时自动获取容器的副本.如果在迭代时修改容器,则不会影响循环.

但它没有说明如何在迭代时删除元素foreach.我最好的猜测是这样的:

int idx = 0;
foreach (const Foo &foo, fooList) {
  if (bad(foo)) {
    fooList.removeAt(idx);
  }
  ++idx;
}
Run Code Online (Sandbox Code Playgroud)

看起来很丑陋,不得不idx在循环外部(并且必须保持一个单独的循环计数器).

此外,我知道这foreach是一个QList便宜的副本,但是一旦我删除一个元素会发生什么 - 是否仍然便宜或是否有昂贵的复制修改?是的,深层复制发生了.

编辑:这似乎不是惯用的Qt.

for (int idx = 0; idx < fooList.size(); ) {
  const Foo &foo = fooList[idx];
  if (bad(foo)) {
    fooList.removeAt(idx);
  }
  else ++idx;
}
Run Code Online (Sandbox Code Playgroud)

c++ foreach qt qlist

41
推荐指数
3
解决办法
4万
查看次数

MSVC - /EHsc vs/EHa(同步与异步异常处理)

你能列出实际差异/暗示的子弹清单吗?我阅读了相关的MSDN文章,但我理解异步异常仍然有点模糊.

我正在使用Boost.Test编写测试套件,我的编译器发出警告,应该启用EHa:

警告C4535:调用_set_se_translator()需要/ EHa

项目本身仅使用普通异常(来自STL)并且不需要/ EHa切换.我是否必须使用/ EHa开关重新编译它以使测试套件正常工作?我的感觉是我只需要/ EHa参加测试.

c++ visual-studio

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

SVN可以做什么,Git不能?

我目前Git在掌握之前已经深入了解SVN.这是我第一次认真的源控制管理系统学习体验.

我想知道不学习的机会成本(甚至是去学习我学到的东西)SVN.有什么我需要注意的吗?

是否存在与之Git相比不可行或难以忍受的事情SVN

svn git

20
推荐指数
5
解决办法
4100
查看次数

等待多个CompletableFuture(直到最大超时)?

我最近刚刚开始使用 CompletableFuture,但遇到了一个问题,我有 N 个请求待办事项。

每个请求应发送到 2 个不同的端点,并应比较 JSON 格式的结果。由于我有大量的请求待办事项,并且我不知道每个请求需要多长时间,因此我想限制等待结果的时间,例如 3 秒左右。

所以我写了这个测试代码:

public class MainTest {

   private static final Logger logger = LoggerFactory.getLogger(MainTest.class);
   private Instant start;

   public static void main(String[] args) {

       MainTest main = new MainTest();
       main.start();
   }

   public void start(){
       String req1 = "http://localhost:8080/testing";
       String req2 = "http://127.0.0.1:8095/testing2";

       ExecutorService exec = Executors.newCachedThreadPool();

       start = Instant.now();
       CompletableFuture<String> comp1 = CompletableFuture.supplyAsync(() -> doReq(req1), exec);
       CompletableFuture<String> comp2 = CompletableFuture.supplyAsync(() -> doReq(req2), exec);


       List<CompletableFuture<String>> completables = List.of(comp1,comp2);

       logger.info("Waiting completables");

       CompletableFuture<List<String>> a = …
Run Code Online (Sandbox Code Playgroud)

java concurrency task completable-future unirest-java

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

在响应onClick事件时绑定'this'与箭头函数

所以我正在努力学习反应,并.bind(this)在构造函数中与理解混淆了一点.但是我想我现在明白了,只是想知道为什么我会在onClick中使用它与箭头函数.见下面的代码:

绑定方法确保eventClick函数中的'this'引用该类

Class Click extends react.Component {
  constructor(props) {
   super(props)
   this.clickEvent = this.clickEvent.bind(this);
  }

  render = () => (
    <button onClick={this.clickEvent}>Click Me</button>
  )

  clickEvent() {console.log(this)} // 'this' refers to the class
}
Run Code Online (Sandbox Code Playgroud)

但是这个方法也引用了这个类.是否有任何赞成/反对使用一个与另一个?

Class Click extends react.Component {

  render = () => (
    <button onClick={() => {this.clickEvent()}}>Click Me</button>
  )

  clickEvent() {console.log(this)} // 'this' refers to the class
}
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

14
推荐指数
2
解决办法
5309
查看次数

如何修复 java.lang.AssertionError:annotationType():无法识别的属性名称 MODULE?

在我的flutter项目中,使用fvm,我将项目从flutter 2.0.6迁移到flutter 2.5.2。解决所有空安全问题后。当我尝试运行我的项目时出现以下错误:

\n
$ fvm flutter run\nUsing hardware rendering with device sdk gphone x86. If you notice graphics artifacts, consider enabling software rendering with "--enable-software-rendering".\nLaunching lib/main.dart on sdk gphone x86 in debug mode...\nRunning Gradle task 'assembleDebug'...                          \nAn exception has occurred in the compiler (1.8.0_242-release). Please file a bug against the Java compiler via the Java bug reporting page (http://bugreport.java.com) after checking the Bug Database (http://bugs.java.com) for duplicates. Include your program and the following diagnostic in your report. Thank you.\njava.lang.AssertionError: …
Run Code Online (Sandbox Code Playgroud)

android flutter fvm

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

如何在打字稿中使用 prop-types 作为类型定义?

情况:

考虑使用myTypes常量持有道具类型(写在名为 的文件中my-component.js),如下所示:

import React from 'react'
import { View } from 'react-native'
import PropTypes from 'prop-types'

export const myTypes = {
  activeColor: PropTypes.string,
  color: PropTypes.string,
  fontFamily: PropTypes.string,
  fontSize: PropTypes.number,
  fontWeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
  height: PropTypes.number,
  icon: PropTypes.node,
  iconOverlay: PropTypes.node,
  marginBottom: PropTypes.number,
  marginLeft: PropTypes.number,
  marginRight: PropTypes.number,
  marginTop: PropTypes.number,
  maxHeight: PropTypes.number,
  minHeight: PropTypes.number,
  onBlur: PropTypes.func,
  onChangeText: PropTypes.func,
  paddingBottom: PropTypes.number,
  paddingLeft: PropTypes.number,
  paddingRight: PropTypes.number,
  paddingTop: PropTypes.number
}

export default class MyComponent extends React.Component {
  static propTypes = myTypes
  
  render …
Run Code Online (Sandbox Code Playgroud)

javascript types jsdoc typescript react-native

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

UIApplicationDidChangeStatusBarOrientationNotification 已弃用,有其他选择吗?

我已将应用程序目标更改为 IOS 13 以检查应用程序中已弃用的方法,但收到以下警告:

“UIApplicationDidChangeStatusBarOrientationNotification”已弃用:首先在 iOS 13.0 中弃用 - 使用 viewWillTransitionToSize:withTransitionCoordinator: 代替。
这是我在我的项目中实现的代码。

    - (instancetype)init
{
    self = [super init];
    if (self) {
        [[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(onChangeStatusBarOrientationNotification:)
                                                     name:UIApplicationDidChangeStatusBarOrientationNotification
                                                   object:nil];
    }
    return self;
}
Run Code Online (Sandbox Code Playgroud)

请向我建议 ios 12 和 ios 13 的解决方案。

提前致谢。

objective-c nsnotificationcenter ios13 xcode11

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

NDK 错误“意外的本机构建目标 xyz。有效目标是:”

我有一个 Android Studio 项目,它依赖于本机共享库。我创建了一个 cmake 文件来编译该库,并在 android 项目中添加了一个指向共享库的软链接(在src/main/jniLibs/armeabi)。这样,当构建 android 项目时,共享库就会包含在包中。

这是相关部分build.gradle

android {
    ...
    externalNativeBuild {
        cmake {
            path "../cpp/CMakeLists.txt"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是 gradle 在调用构建共享库的指令之前尝试打开共享库。

Information:Gradle tasks [:app:assembleDebug]
Error:Could not list contents of 'app/src/main/jniLibs/armeabi/libfoo.so'. Couldn't follow symbolic link.
Run Code Online (Sandbox Code Playgroud)

如何从项目内部调用 cmake 并同时将库包含在项目中?

--

编辑

在 cmake 中,共享库是使用ExternalProject_Add. 不幸的是,gradle 没有看到该目标,也没有将导入的共享库视为目标。所以这不起作用:

add_library(libfoo SHARED IMPORTED GLOBAL)
add_dependencies(libfoo libactual)
Run Code Online (Sandbox Code Playgroud)

我尝试使用 gradle 配置调用构建特定目标:

defaultConfig {
    ...
    externalNativeBuild {
        cmake {
            targets "libfoo"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但 gradle 仍然没有看到它并失败:

Unexpected …
Run Code Online (Sandbox Code Playgroud)

shared-libraries gradle android-ndk

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

React-native APK 崩溃并出现“未知”错误

我的react-native开发环境是Windows 7;直到昨天都工作正常,但是 APK 在加载捆绑包后突然报告错误。

错误消息:

Unknown
run
    NativeRunnable.java
handleCallback
    Handler.java:873
dispatchMessage
    Handler.java:99
dispatchMessage
    MessageQueueThreadHandler.java:29
loop
    Looper.java:193
run
    MessageQueueThreadImpl.java:232
run
    Thread.java:764
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索了这个错误,但没有运气。我尝试使用清除缓存npm start -- --reset-cache,但错误仍然存​​在。我发现并尝试了类似的帖子,但他们的解决方案也不起作用。

错误日志猫:

06-16 14:30:16.144  5885  6735 E unknown:ReactNative: Exception in native call
06-16 14:30:16.144  5885  6735 E unknown:ReactNative: com.facebook.jni.UnknownCppException: Unknown
06-16 14:30:16.144  5885  6735 E unknown:ReactNative:   at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
06-16 14:30:16.144  5885  6735 E unknown:ReactNative:   at android.os.Handler.handleCallback(Handler.java:873)
06-16 14:30:16.144  5885  6735 E unknown:ReactNative:   at android.os.Handler.dispatchMessage(Handler.java:99)
06-16 14:30:16.144  5885  6735 E unknown:ReactNative:   at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:29) …
Run Code Online (Sandbox Code Playgroud)

bundler babeljs react-native metro-bundler

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