小编kan*_*tar的帖子

变量模板继承中的运算符重载

想象一下这样的代码:

struct Foo
{
    int foo{0};
};

Foo operator+(const Foo& lhs, const Foo& rhs)
{
    Foo ret;
    ret.foo = lhs.foo + rhs.foo;
    return ret;
}

struct Bar
{
    int bar{0};
};

Bar operator+(const Bar& lhs, const Bar& rhs)
{
    Bar ret;
    ret.bar = lhs.bar + rhs.bar;
    return ret;
}

template<typename... Ts>
struct Fooz : public Ts...
{

};

template<typename... Ts>
Fooz<Ts...> operator+(const Fooz<Ts...>& lhs, const Fooz<Ts...>& rhs)
{
    // how can you call base class's operator+ here?
}

int main(int …
Run Code Online (Sandbox Code Playgroud)

operator-overloading variadic-templates c++11 c++14 c++17

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

在Yocto Bitbake中为自动工具设置python dist-packages路径

我正在尝试为使用自动工具配置Makefile的项目编写一个bitbake文件。

### tizonia.bb
SUMMARY = "Tizonia Library"
DESCRIPTION = "Tizonia"
LICENSE = "LGPL-3.0"
LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02"

SRC_URI = "git://github.com/tizonia/tizonia-openmax-il.git;protocol=https"
SRCREV = "9004bc40b89eeafb04b28fbb2b772e47dd62fdc9"

S = "${WORKDIR}/git"

DEPENDS = "python-dev python-setuptools mediainfo log4c python-pip python-soundcloud"

inherit autotools ccache pkgconfig python-dir pythonnative

RDEPENDS_${PN} = "libstdc++ dbus boost libgcc mediainfo log4c libspotify python-pip python-soundcloud"

Run Code Online (Sandbox Code Playgroud)
### python-soundcloud.bb
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=31fa3a9dc818e0087893d63583d2d21a"

SRC_URI[md5sum] = "40c1d32afd019ed11ec1fbee3e84e31f"
SRC_URI[sha256sum] = "aad2003592cec945f835f158f7b41ba8bf805c5738a2fcc5629668ea1df653d5"

DEPENDS = "${PYTHON_PN}-modules"

PYPI_PACKAGE = "soundcloud"

inherit pypi setuptools

RDEPENDS_${PN} = "${PYTHON_PN}-modules"
Run Code Online (Sandbox Code Playgroud)

在调用脚本的do_configure步骤中configure …

python automake autotools bitbake yocto

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

无法理解C ++指针中的输出。(使用指针中的循环)

无法理解意外的输出。指针没有指向第0个索引号。一串

我一直在尝试寻找以下程序输出的原因。循环从i = 0开始,但是在第0个索引编号处没有显示字符。循环从第一个索引编号开始。

#include <conio.h>
#include <iostream.h>
#include <string.h>

int main() 
{
  clrscr();

  int i, n;
  char *x = "Alice";
  n = strlen(x);
  *x = x[n];

  for (i = 0; i <= n; i++) 
  {
    cout << x;
    x++;
  }

  cout << endl << x;
  getch();
}
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:liceicecee 但是我希望输出从'A'开始。

c++ pointers

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

为什么没有从 std::tuple&lt;Ts...&gt;&amp; 到 std::tuple&lt;Ts&amp;...&gt; 的(隐式)转换?

  1. 正如标题所述,是否有特定原因导致没有从std::tuple<Ts...>&到 的(隐式)转换std::tuple<Ts&...>?相反,tupleEASTL 的实现提供了这种转换。
#include <EASTL/tuple.h>

#include <tuple>

#include <type_traits>

int main()
{
  using TupleRef = std::tuple<int, float>&;
  using RefTuple = std::tuple<int&, float&>;

  using EATupleRef = eastl::tuple<int, float>&;
  using EARefTuple = eastl::tuple<int&, float&>;

  // static_assert(std::is_convertible_v<TupleRef, RefTuple>); // fails to compile
  static_assert(std::is_convertible_v<EATupleRef, EARefTuple>);

  return 0;
}
Run Code Online (Sandbox Code Playgroud)
  1. 如果我重新实现了 STL 实现,我需要更改/添加什么tuple

以下是 godbolt 展示问题的链接:https ://godbolt.org/z/zqfrETKEz

PS:我c++17在 godbolt 中使用了该标志,因为 EASTL 不使用该c++20标志进行编译,但我也对解决方案感兴趣c++20

c++ tuples eastl c++17 c++20

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

通过移动从两个向量创建元组向量

我想创建一个std::vectorstd::tuple的(std::vector<std::tuple<Ts...>>从两个)std::vector的通过移动的数据std::vector秒。

假设我有一个与此类似的结构(添加std::couts来展示问题)。

template<typename T>
struct MyType
{
    constexpr MyType() { std::cout << "default constructor\n"; }
    constexpr MyType(const T& data) : m_data(data)
    {
        std::cout << "data constructor\n";
    }
    constexpr MyType(const MyType& other) : m_data(other.m_data)
    {
        std::cout << "copy constructor\n"; 
    }

    constexpr MyType(MyType&& other) noexcept : m_data(std::move(other.m_data))
    {
        std::cout << "move constructor\n";
    }
    ~MyType() = default;

    constexpr MyType& operator=(const MyType& other)
    {
        std::cout << "copy operator\n";
        m_data = other.m_data;
        return …
Run Code Online (Sandbox Code Playgroud)

c++ tuples vector move-semantics c++17

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