小编oll*_*g23的帖子

gcc Woverloaded-virtual warnings

我认为以下C++代码是正确的,但在使用"-Woverloaded-virtual"编译时会产生一些警告,警告是否存在或者此代码存在实际问题?

如果这是一个虚假的警告,我该怎么做才能避免它,在派生的get rids中定义所有异常虚拟变量,但也许是一个更好的解决方案

G ++命令:

   g++ -c -Woverloaded-virtual test.cpp 
test.cpp:22:18: warning: ‘virtual void intermediate::exception(const char*)’ was hidden [-Woverloaded-virtual]
test.cpp:32:18: warning:   by ‘virtual void derived::exception()’ [-Woverloaded-virtual]
Run Code Online (Sandbox Code Playgroud)

C++代码

using namespace std;

class base
{
public:

    virtual void exception() = 0;
    virtual void exception(const char*) = 0;
};

class intermediate : public base
{
public:

    virtual void exception()
    {
    cerr << "unknown exception" << endl;
    }

    virtual void exception(const char* msg)
    {
    cerr << "exception: " << msg << endl;
    }
};

class …
Run Code Online (Sandbox Code Playgroud)

c++ gcc virtual-functions overloading

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

python numpy:如何从两个小数组构造一个大对角线数组(矩阵)

import numpy as np

A = np.array([[1, 2], 
              [3, 4]])    
B = np.array([[5, 6], 
              [7, 8]])

C = np.array([[1, 2, 0, 0],
              [3, 4, 0, 0],
              [0, 0, 5, 6],
              [0, 0, 7, 8]])
Run Code Online (Sandbox Code Playgroud)

我想C直接来自AB,是否有任何简单的方法来构建对角线阵列C?谢谢.

python arrays numpy

9
推荐指数
1
解决办法
847
查看次数

Windows + Python:为什么第一个打开的窗口没有显示为活动状态?

我发现在Python Windows命令行提示下使用python脚本有一个非常奇怪的问题,为了重现这个问题,你可以简单地执行以下步骤:

  1. 启动Python命令行提示符(这通常是打开开始菜单 - > Python 2.7-> Python(命令行).
  2. 键入以下文本,然后按Enter键.

    import ctypes
    
    Run Code Online (Sandbox Code Playgroud)
  3. 键入以下文本,然后按Enter键.

    ctypes.windll.user32.MessageBoxA(0, "Your text", "Your title", 1)
    
    Run Code Online (Sandbox Code Playgroud)
  4. 您将看到一个消息框已打开,但此消息框窗口未激活.
  5. 使用鼠标单击任务栏中消息框的图标以激活消息框
  6. 关闭消息框
  7. 在Python提示shell中再次键入文本

    ctypes.windll.user32.MessageBoxA(0, "Your text", "Your title", 1)
    
    Run Code Online (Sandbox Code Playgroud)
  8. 现在,消息框显示已激活(预期行为)

所以,我的问题是,为什么第一个消息框(窗口)没有显示为活动状态?我最初在GDB命令行下运行Python漂亮的打印机时发现这个问题,因为我想使用一些python漂亮的打印机来查看数据,比如调试c ++程序时这个GDB cv :: Mat python对象问题,我需要在我输入plot命令后立即显示OpenCV Image窗口.

但后来我发现这是一个与Python本身有关的问题.

python

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

是否有任何工具只能翻译代码中的注释

我有一些c ++源文件,其中包含意大利语的注释,是否有任何工具只能将注释翻译成英语.我试过谷歌翻译,它将翻译整个文件,//也将被翻译.因此,从Google的翻译结果粘贴不会提供有效的c ++源文件.

有任何想法吗?

谢谢.

c++ comments translate

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

从 std::span&lt;T&gt; 中删除第一个元素的方法是什么?

在阅读std::span的文档时,我发现没有方法可以从std::span<T>.

您能建议一种方法来解决我的问题吗?

我的问题的大局(我在另一个问题中问:How to instantiate a std::basic_string_view with custom class T,我得到 is_trivial_v<_CharT> 断言错误)是我想要一个std::basic_string_view<Token>,而这Token不是一个微不足道的问题类,所以我不能使用std::basic_string_view,有人建议我改用std::span<Token>

由于basic_string_view有一个名为删除第一个元素的方法remove_prefix,而我也需要此类函数,因为我想用作std::span<Token>解析器输入,因此令牌将被匹配,并一个接一个地消耗。

谢谢。

编辑 2023-02-04

我尝试派生一个名为Spanfrom的类std::span,并添加remove_prefix成员函数,但看起来我仍然存在构建问题:

#include <string_view>
#include <vector>
#include <span>


// derived class, add remove_prefix function to std::span
template<typename T>
class Span : public std::span<T>
{
public:
    // Inheriting constructors
    using std::span<T>::span;

    // add a public function which is similar to …
Run Code Online (Sandbox Code Playgroud)

c++ templates string-view c++20 std-span

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

OpenGL在不同的VBO中绘制具有不同颜色、顶点位置和顶点颜色的点?

我想用不同的颜色画不同的点。我将顶点位置数据和颜色数据放在不同的VBO中,如下所示:

这是我的 C++ 代码:

    m_Points.push_back(glm::vec3(4, 0, 0));
    m_Points.push_back(glm::vec3(0, 2, 0));
    m_Points.push_back(glm::vec3(0, 0, 3));
    m_Points.push_back(glm::vec3(0, 0, 6));

    m_Colors.push_back(glm::vec3(0, 1.0, 0));
    m_Colors.push_back(glm::vec3(1.0, 0, 0));
    m_Colors.push_back(glm::vec3(0, 0, 1.0));
    m_Colors.push_back(glm::vec3(1.0, 1.0, 0));

    glEnable(GL_PROGRAM_POINT_SIZE);


    glGenVertexArrays(1, &m_VAO);
    glBindVertexArray(m_VAO);

    // the first VBO, it is the coordinates
    glGenBuffers(1, &m_VBO);
    glBindBuffer(GL_ARRAY_BUFFER, m_VBO);
    glBufferData(GL_ARRAY_BUFFER, sizeof(glm::vec3) * sizeof(m_Points), &m_Points[0][0], GL_DYNAMIC_DRAW);

    // the second VBO, the color
    glGenBuffers(1, &m_VBO_Color);
    glBindBuffer(GL_ARRAY_BUFFER, m_VBO_Color);
    glBufferData(GL_ARRAY_BUFFER, sizeof(glm::vec3) * sizeof(m_Colors), &m_Colors[0][0], GL_DYNAMIC_DRAW);

    glEnableVertexAttribArray(0);
    // in file axis.vs, there is a statement
    // layout (location = 0) …
Run Code Online (Sandbox Code Playgroud)

c++ opengl glsl vbo glm-math

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