小编Vic*_*voy的帖子

提升程序选项设置选项的最小值和最大值

是否可以设置一个值的最小和最大限制(假设它是无符号短,我需要一个0到10之间的值)因为我可以设置默认值

opt::value<unsigned short>()->default_value(5)
Run Code Online (Sandbox Code Playgroud)

我想立即使用从程序选项的变量映射给出的参数而不检查它们中的每一个.

c++ boost max minimum boost-program-options

8
推荐指数
3
解决办法
2110
查看次数

如何正确地要求其他特征的特征?

我试着写两个特征,其中一个需要另一个实现并得到这个错误:

error[E0277]: the trait bound `T: ValTrait` is not satisfied
  --> src/main.rs:20:1
   |
20 | / fn get<T: ValRequireTrait + std::fmt::Debug>(_t: T) {
21 | |     println!("{:?}", T::VAL);
22 | | }
   | |_^ the trait `ValTrait` is not implemented for `T`
   |
   = help: consider adding a `where T: ValTrait` bound
   = note: required by `ValRequireTrait`
Run Code Online (Sandbox Code Playgroud)

代码:

trait ValTrait<T = Self> {
    const VAL: T;
}

trait ValRequireTrait<T: ValTrait = Self> {}

#[derive(Debug, Copy, Clone)]
struct A { …
Run Code Online (Sandbox Code Playgroud)

rust

8
推荐指数
2
解决办法
879
查看次数

QML2 ApplicationWindow键处理

有没有办法处理QtQuick.Controls组件的ApplicationWindow中的按键事件?Qt5.3的文档没有提供任何方法来执行此操作.此外,它表示Keys只存在于Item对象中.当我尝试处理按键事件时,它说" 无法将Keys属性附加到:ApplicationWindow_QMLTYPE_16(0x31ab890)不是一个项目 ":

import QtQuick 2.2
import QtQuick.Controls 1.2
import QtQuick.Controls.Styles 1.1
import QtQuick.Window 2.1


ApplicationWindow {
    id: mainWindow
    visible: true
    width: 720
    height: 405
    flags: Qt.FramelessWindowHint
    title: qsTr("test")

    x: (Screen.width - width) / 2
    y: (Screen.height - height) / 2

    TextField {
        id: textField
        x: 0
        y: 0
        width: 277
        height: 27
        placeholderText: qsTr("test...")
    }

    Keys.onEscapePressed: {
        mainWindow.close()

        event.accepted = true;
    }
}
Run Code Online (Sandbox Code Playgroud)

qt window key event-handling qml

7
推荐指数
2
解决办法
4095
查看次数

是否可以将对象方法作为参数传递给函数并将其绑定到对象?

是否可以绑定到对象方法?例如,如果向量中存在某个项目,我有一个向量和许多函数可以执行某些操作.我会按如下方式实现它:

fn perform_if_exists(item: u8, vector: &Vec<u8>, func: fn(usize)) {
    let idx = vector.iter().position(|i| *i == item );
    match idx {
        Some(i) => func(i), 
        None    => {},
    }
}

fn main() {
    let v: Vec<u8> = vec![1, 2, 3];
    perform_if_exists(1, &v, Vec<_>::remove);
}
Run Code Online (Sandbox Code Playgroud)

但它会带来很多错误.我认为它们是合理的,但这是因为我不明白如何将vector的方法作为参数添加到函数中.

rust

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

使用类型作为不同的名称和类型别名有什么区别?

有什么区别

use hyper::status::StatusCode as Error;
Run Code Online (Sandbox Code Playgroud)

type Error = hyper::status::StatusCode;
Run Code Online (Sandbox Code Playgroud)

他们之间是否还有其他差异,除此之外也type可以pub type?使用这一个或另一个有什么好处?

rust

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

为什么我更喜欢`Option :: ok_or_else`而不是`Option :: ok_or`?

我刚看到拉取请求中的以下更改:

- .ok_or(Error::new(ErrorKind::Other, "Decode error"));
+ .ok_or_else(|| Error::new(ErrorKind::Other, "Decode error"));
Run Code Online (Sandbox Code Playgroud)

我所知道的唯一区别是:

  1. ok_or我们已经创建ErrorError::new,并通过它变成一个适配器.
  2. ok_or_else我们已经传递了一个闭包,它会产生这样一个值,但是如果有Some数据则可能不会被调用Option.

我错过了什么吗?

rust

7
推荐指数
2
解决办法
1551
查看次数

带有 Qt3D 5.12.2 和 QML、SceneLoader 的 OSX:找不到适合 3ds obj 的导入器插件

我为 macOS 安装了最新版本的 Qt5 - 5.12.2,并尝试创建一个带有SceneLoader对象的应用程序来加载我的场景。无论我传递给它什么格式它都不起作用,我总是有这个错误:

找不到合适的导入器插件

我也无法在我的/Users/user/Qt/Examples/Qt-5.12.2/qt3d (这是我安装 Qt 的地方)中找到任何关于assimp 的示例,但根据文档,它必须在那里。

还值得一提的是,即使SceneLoader没有打开任何东西(*.obj以及),我也可以使用Mesh对象打开它们,然后自己渲染它们。

我做错了什么?我是否需要安装其他任何东西才能使其正常工作?我试图在组件中找到与 3d 或 assimp 相关的任何内容,并且所有内容都在那里打勾,但是,我找不到示例。

在 qt 论坛上 交叉发布 在 bugreports.qt.io交叉发布

macos qt qml

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

是否可以在Qt5 QML中断开所有插槽与信号的连接?

在QML中,不可能在.disconnect()没有参数的情况下调用信号:

file:mainwindow.qml:107: Error: Function.prototype.disconnect: no arguments given
Run Code Online (Sandbox Code Playgroud)

那么如何在不指定每个插槽的情况下断开所有插槽?或者也许可以通过传递信号对象C++并以某种方式断开它?或者可能存在任何解决方法?

我想达到的目标是通过将不同的插槽连接到它的信号来改变对象的行为.例如:

object.disconnect() // disconnect all slots
object.connect(one_super_slot)
object.disconnect() // disconnect all slots
object.connect(another_super_slot)
Run Code Online (Sandbox Code Playgroud)

qt signals disconnect qml slot

6
推荐指数
2
解决办法
4260
查看次数

链接.如何同时定义和定义符号?

$ nm --demangle /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/libsupc++.a  | grep "__cxxabiv1::__class_type_info::~__class_type_info"
Run Code Online (Sandbox Code Playgroud)

给出以下输出:

0000000000000000 T __cxxabiv1::__class_type_info::~__class_type_info()
0000000000000000 T __cxxabiv1::__class_type_info::~__class_type_info()
0000000000000000 T __cxxabiv1::__class_type_info::~__class_type_info()
                 U __cxxabiv1::__class_type_info::~__class_type_info()
                 U __cxxabiv1::__class_type_info::~__class_type_info()
Run Code Online (Sandbox Code Playgroud)

那么,如何解释这个输出?

  1. 这是符号的多个定义(三个T) - 它可能是怎样的?为什么链接器生成这样的库违反ODR?什么目的?为什么他们都有相同(和奇怪)的地址(0000000000000000)?
  2. 同一个符号如何同时定义(T)和undefined(U)?

c++ linker

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

C++初始化列表和默认值

这段代码对C++ 14有效吗?

using namespace std;
struct Point
{
  int x = 0;
  int y = 0;
};
Point p2 {1, 1};
Run Code Online (Sandbox Code Playgroud)

它使用clang ++ 7.0编译得很好,在两种情况下它都不适用于G ++ 4.9我将--std = c ++ 1y传递给编译器.

在G ++中,当我从结构定义中删除默认值时,它可以工作.

g++ test_constexpr_ctor.cc --std=c++1y -o test
test_constexpr_ctor.cc:7:15: error: no matching function for call to ‘Point::Point(<brace-enclosed initializer list>)’
Point p2 {1, 1};
            ^
test_constexpr_ctor.cc:7:15: note: candidates are:
test_constexpr_ctor.cc:1:8: note: constexpr Point::Point()
struct Point
        ^
test_constexpr_ctor.cc:1:8: note:   candidate expects 0 arguments, 2 provided
test_constexpr_ctor.cc:1:8: note: constexpr Point::Point(const Point&)
test_constexpr_ctor.cc:1:8: note:   candidate …
Run Code Online (Sandbox Code Playgroud)

c++ g++ c++14

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

标签 统计

rust ×4

c++ ×3

qml ×3

qt ×3

boost ×1

boost-program-options ×1

c++14 ×1

disconnect ×1

event-handling ×1

g++ ×1

key ×1

linker ×1

macos ×1

max ×1

minimum ×1

signals ×1

slot ×1

window ×1