小编Moh*_* Li的帖子

使用带有默认情况和lambda函数的switch语句时出现gcc错误

我不明白为什么这个代码

#include <iostream>

class A {
    public:


    void foo(){
        char g = 'm';
        switch(g){
            case 'g':
                auto f = [](){std::printf("hello world\n");};
                f();
                break;
//            default:
//                std::printf("go to hell\n");
//                break;
        }
    };
};



int main(int iargc, char *iargv[]){
    A a;
    a.foo();
}
Run Code Online (Sandbox Code Playgroud)

编译(并且工作)很好,而在取消注释默认语句时

#include <iostream>

class A {
    public:


    void foo(){
        char g = 'm';
        switch(g){
            case 'g':
                auto f = [](){std::printf("hello world\n");};
                f();
                break;
            default:
                std::printf("go to hell\n");
                break;
        }
    };
};



int main(int iargc, char *iargv[]){
    A …
Run Code Online (Sandbox Code Playgroud)

c++ lambda gcc switch-statement

4
推荐指数
2
解决办法
549
查看次数

字符串变量作为pyplot中的乳胶

可以在pyplot图中使用Latex格式,即标题,标签等.

#some dummy code
plt.plot(x,y,label = r"$a < \gamma$")
Run Code Online (Sandbox Code Playgroud)

它是通过在实际乳胶串之前添加r来生成的.现在,pyplot接受变量作为字符串的输入,即

#some dummy code
foo = "some fancy label"
plt.plot(x,y, label = foo)
Run Code Online (Sandbox Code Playgroud)

我想把这两个世界结合起来,但我在SO上找到的唯一答案就是朱莉娅.

我怎样才能做到这一点?

python latex matplotlib python-2.7

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

qmltyperegistration 包含路径不承认子目录

我正在尝试使用 qml 构建一个 Qt 项目。qml 元类型注册仅查看顶级 qml 目录。我也想让它查看子目录。

该项目的结构如下:

./CMakeLists.txt
./ui
./ui/MainWindow.qml
./src
./src/controller
./src/controller/Foo.cpp
./src/controller/FileController.cpp
./src/controller/FileController.h
./main.cpp
Run Code Online (Sandbox Code Playgroud)

我的 CMakeLists.txt 如下所示:

cmake_minimum_required(VERSION 3.25)
project(testproject)
find_package(Qt6 REQUIRED COMPONENTS Core Gui Quick Widgets)

qt_standard_project_setup()

qt_add_executable(testproject)
target_sources(testproject PRIVATE 
    main.cpp
)


target_link_libraries(testproject PRIVATE 
    Qt6::Widgets
    Qt6::Gui 
    Qt6::Quick 
)

set_target_properties(testproject PROPERTIES
        CXX_STANDARD 17
        CXX_STANDARD_REQUIRED ON
        CXX_EXTENSIONS OFF
        OUTPUT_NAME some_test_exec
)

target_include_directories(testproject PUBLIC ${PROJECT_SOURCE_DIR}/include)


qt_add_qml_module(testproject
        URI testproject
        VERSION 1.0
        SOURCES
            src/controller/FileController.h
            src/controller/FileController.cpp
        QML_FILES
            ui/MainWindow.qml
)
Run Code Online (Sandbox Code Playgroud)

我有一个启动应用程序的主函数:

#include <iostream>
#include <QGuiApplication>
#include <QQmlApplicationEngine>

int main(int argc, char* argv[]) …
Run Code Online (Sandbox Code Playgroud)

c++ cmake qml

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

为什么通过 np.matrix.getH() 获得 numpy 中矩阵的伴随

当我想获得一个 numpy 数组的伴随时,我必须输入

A = np.matrix([...])
A.getH()
Run Code Online (Sandbox Code Playgroud)

我对命名很好奇。为什么

np.matrix.getH()?
Run Code Online (Sandbox Code Playgroud)

相反,转置和共轭实现为

ndarray.transpose()
ndarray.conjugate()
Run Code Online (Sandbox Code Playgroud)

python numpy

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

std::is_enum_v&lt;std::byte&gt; 计算结果为 true

根据标准参考std::is_enum_v枚举类型的计算结果为 true,否则为 false。枚举类型以枚举键开头,即枚举、枚举类或枚举结构之一。

编写了以下测试程序:

#include <type_traits>
#include <iostream>

using to_examine = std::byte;

enum class Foo {
    ONE,
    TWO 
};

int main() {
    if constexpr (std::is_enum_v<std::byte>) {
        std::cout << "byte counts as enum" << std::endl;
    }   

    if constexpr(std::is_enum_v<int>) {
        std::cout << "int counts as enum" << std::endl;
    }   

    if constexpr(std::is_enum_v<Foo>) {
        std::cout << "scoped enum counts as enum" << std::endl;
    }   
}
Run Code Online (Sandbox Code Playgroud)

打印出以下内容:

byte counts as enum
scoped enum counts as enum
Run Code Online (Sandbox Code Playgroud)

我正在使用 clang15 和 …

c++ enums type-traits std-byte

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

构造函数错误:输入结束时应为“{”

我无法在子类中声明构造函数,该子类的超类是从模板创建的。

示例代码如下所示:

template <class T>
class foo{
    public:
        foo();
};

typedef foo<double> foo_double;

class bar : public foo_double
{
    bar() : foo_double();
};

int main(){
}
Run Code Online (Sandbox Code Playgroud)

当我编译时,我收到一个错误:

In constructor ‘bar::bar()’:
expected ‘{’ at end of input
Run Code Online (Sandbox Code Playgroud)

我在这里有点不知所措。

c++ inheritance constructor

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

C++析构函数分段错误

我有一个关于c ++和析构函数的新手问题.如果我已经声明了一个destoructor,我删除一个类指针后,我的c ++程序给出了一个分段错误,否则我没有,我不明白为什么.非常感谢帮助.

主文件,使用类的位置.

#include <iostream>
#include "foo.h"

int main(int iargc, char *iargv[]){
    std::cout<<"helloworld"<<std::endl;

    foo *test;
    test =  new foo[2];
    delete test;

}
Run Code Online (Sandbox Code Playgroud)

头文件:

#ifndef FOO_H
class foo{
    public:
        foo();
        ~foo();
};
#define FOO_H
#endif
Run Code Online (Sandbox Code Playgroud)

Foo.cpp中

#include "foo.h"

foo::foo(){
};

foo::~foo(){
};
Run Code Online (Sandbox Code Playgroud)

没有删除语句,没有任何问题,如果我从头文件和源代码中删除析构函数,我可以删除类指针测试,但我不能删除它,而我声明析构函数这样没有段错误.

c++

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