小编Aer*_*Sun的帖子

为什么我的两个元组包含以相同方式创建的字符串,而不是相等的?

我正在使用 Microsoft Visual C++ 将以下程序编译为 C++20 程序:

#include <iostream>
#include <tuple>

int main()
{
    auto t1 = std::make_tuple("one", "two", "three");
    auto t2 = std::make_tuple("one", "two", "three");
    
    std::cout << "(t1 == t2) is " << std::boolalpha << (t1 == t2) << "\n";
    std::cout << "(t1 != t2) is " << std::boolalpha << (t1 != t2) << "\n";

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我看到以下输出:

(t1 == t2) is false
(t1 != t2) is true
Run Code Online (Sandbox Code Playgroud)

元组是相同的,那么为什么它的比较结果是错误的呢?我该如何解决?

c++ tuples string-literals visual-c++

56
推荐指数
4
解决办法
3627
查看次数

如何使用Visual Studio 2017在Windows上构建OpenSSL?

我正在尝试使用OpenSSL,但我仍然坚持编译的步骤.OpenSSL项目有非常不友好(坏)的文档.

有没有实际帮助如何使用Visual Studio 2017在Windows上构建最新的OpenSSL版本?

我没有在官方OpenSSL网站上找到任何有用的信息.是的,互联网上有很多关于OpenSSL编译的帖子,但所有帖子都已过时.

c++ openssl build visual-studio

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

如何在VisualStudio 2017中使用Qt库?

官方Qt库网站仅提供Microsoft Visual Studio 2013和2015的Qt加载项.并且没有MSVS 2017的加载项.

在这种情况下如何使用Qt库和Visual Studio 2017?

c++ qt visual-studio

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

为什么需要std :: aligned_storage?

因此,正如我未正确指出的那样,std :: aligned_storage的主要优点是它可以管理对齐.它也可以用memcpy复制.它也仅适用于POD类型.

但!

1)POD类型默认从编译器接收一些对齐,我们可以通过#pragma pack(push,1)删除对齐

2)我们可以默认使用memcpy复制POD(我们不应该为此功能做点什么)

所以我实际上无法获得我们需要std :: aligned_storage的目的?

c++ std c++11

12
推荐指数
3
解决办法
2254
查看次数

如何从文件系统将现有存储库添加到 gitea?

我的文件系统上有一些裸露的 git 存储库,用户可以在其中进行拉/推操作。我安装了 gitea,但找不到如何将其添加到 gitea。其他 git 管理系统有类似“从文件系统添加存储库”、“扫描目录”等功能,将现有存储库添加到系统中。如何在gitea中添加呢?

gitea

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

如何重新排序函数参数?

看看下面的伪 C++ 代码:

typedef *** SomeType1;
typedef *** SomeType2;
typedef *** SomeType3;

void BFunc(SomeType1& st1, SomeType2& st2, SomeType3& st3)
{
    /*some work*/;
}

template <typename T1, typename T2, typename T3>
void AFunc(T1& p1, T2& p2, T3& p3)
{
    BFunc(???);
}
Run Code Online (Sandbox Code Playgroud)

有两个带参数的函数。参数计数大于三个,但为了简单起见,例如让它为三个。

Afunc-它是模板函数具有相同的参数当作BFunc加上参数具有相同类型的BFunc参数。但是(!)参数的顺序BFunc可以(或不能)不同。例如:

BFunc(int, double, char)

AFunc<double, int, char>
AFunc<int, double, char>
AFunc<char, double, int>
AFunc<char, int, double>
...
Run Code Online (Sandbox Code Playgroud)

那么如何重新排序内部参数AFuncBFunc使用正确的参数序列进行调用?

c++ templates

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

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

如何使 QML 控件看起来更好?

我在 QtCreator 中创建了默认的“空”qml 应用程序。然后我只需添加按钮并运行它:

import QtQuick 2.11
import QtQuick.Window 2.11
import QtQuick.Controls 2.4

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    Button {
        text: "Button1"
    }
}
Run Code Online (Sandbox Code Playgroud)

但是按钮看起来非常丑陋:

在此处输入图片说明

我应该做什么(打开或添加或 smth)使它看起来更有吸引力?

例如,即使是默认的 Win10 视图也适合我。

答除了:它给我伤心,但没有办法让QtQuick应用看起来比通过自我实现所有comtrols的。下面的答案解释了如何做到这一点。

qt qml qt5 qtquick2 qtquickcontrols2

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

boost :: asio如何以正确的方式读取完整缓冲区?

我正在学习boost::asio并且现在混淆了读取完整缓冲区的正确方法.例如,当建立连接时,我想以下uint32_t一种方式阅读:

std::uint32_t size;
size_t len = m_socket.read_some(buffer(&size, sizeof(std::uint32_t)));
Run Code Online (Sandbox Code Playgroud)

如您所见,我设置了缓冲区大小.在其他情况下,我收到了数据的len长度read_some.

所以主要的问题是:如果我在调用时设置了所需的缓冲区长度boost::asio,uint32_t那么保证会读取所有4个字节buffer吗?

或者如果不能保证 - 我怎样才能读取完整的缓冲区?(全部4个字节)

c++ boost boost-asio

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

如何通过自定义结构传递数组初始化?

通常数组可以这样初始化:

int ooo[3][3] =
{
    { 1, 2, 3 },
    { 4, 5, 6 },
    { 7, 8, 9 }
};
Run Code Online (Sandbox Code Playgroud)

我需要像这样将它隐藏到自定义结构中:

template <typename T, size_t dim1, size_t dim2>
struct MyStruct
{
private:
    T m_data[dim1][dim2];
};
Run Code Online (Sandbox Code Playgroud)

如何像傻瓜一样将初始化传递给数组?

MyStruct<int, 3, 3> s = 
{
    { 1, 2, 3 },
    { 4, 5, 6 },
    { 7, 8, 9 }
};
Run Code Online (Sandbox Code Playgroud)

c++ c++17 c++20

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