小编inn*_*nti的帖子

使用C++ 11属性

你能解释一下如何从C++中的属性中获取信息吗?例如,我想将C++编写为python绑定.为此,我需要使用一些特定的绑定信息来注释类中的所有方法.现在我需要按属性生成一些代码.或者另一个例子,将类映射到db实体.或者C++ 11属性与Java或C#注释不同?

c++ attributes c++11

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

使用"X x(42)"和"X x = 42"的对象构造的差异?

比方说,我们有一流的X与定义的构造X(int value).

这在语义上是否相同?

X x = 42;
X x(42);
Run Code Online (Sandbox Code Playgroud)

我相信只有当我们将显式关键字添加到X的构造函数时才会出现差异.否则编译器会将表达式减少X x = 42;X x(42);

如果我错了,请纠正我.

c++ constructor explicit-constructor

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

数字转换

在C++ 11的标题中,有三个用于在数字和字符串之间进行转换的新函数.

std::string std::to_string(unsigned long long);
std::string std::to_string(long double);
std::string std::to_string(long long);
Run Code Online (Sandbox Code Playgroud)

第一个问题 - 为什么只有3个功能?那么简单的int或unsigned int等呢?

第二个问题 - 为什么to_string不会在下面的代码中抛出异常?

long double x = std::numeric_limits<long double>::quiet_NaN();
std::string i = std::to_string( x ); 
long double c = std::stold( i ); // i = "1.#QNAN"
Run Code Online (Sandbox Code Playgroud)

第三个问题 - 为什么c等于1.0?

c++ visual-studio-2010 visual-c++ c++11

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

Visual Studio 中的“其他模块依赖项”和“其他 BMI 目录”设置

假设我有两个模块 - Module1、Module2。每个模块在 Visual Studio 中都有自己的项目。如何使用“其他模块依赖项”或“其他 BMI 目录”设置将 Module2 导入到 Module1 中?

问题:Visual Studio (2019/2022) 无法从 Module2 中找到任何符号。

将 Module2 的引用添加到 Module1 中没有帮助。

https://devblogs.microsoft.com/cppblog/a-tour-of-cpp-modules-in-visual-studio/没有多大帮助

c++ module visual-studio c++20

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

不变尺度几何

我正在编写一个网格编辑器,其中有操纵器,可以在其帮助下更改网格的顶点。任务是渲染具有恒定尺寸的操纵器,当更改相机和视口参数时,该尺寸不会改变。投影矩阵是透视矩阵。我将感谢您提供如何实现不变比例几何的想法。

opengl algorithm directx geometry

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

用于确定两个凹多边形之间的一对可见边的算法

假设我们有两个不相交的凹二维多边形(A,B).问题是找到一组边对(每对由多边形A的一条边和多边形B的边组成),它们具有以下属性:对中的每个项必须彼此可见.如果没有障碍物(在图片中有三个案例,在这个规则被打破时用红色十字标记),则一个边缘对另一个边缘是可见的.

在此输入图像描述

我知道如何使用光线和边缘顶点在O(n ^ 2)中解决这个问题.但它太慢了.

algorithm computational-geometry

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

这是不确定的行为,为什么?

请解释为什么这段代码是正确的或为什么不是:在我看来,行++*p1 =*p2 ++有未定义的行为,因为p1首先被解除引用然后递增.

int main()
{
   char a[] = "Hello";
   char b[] = "World";

   char* p1 = a;
   char* p2 = b;

   //*++p1 = *p2++; // is this OK?
   ++*p1 = *p2++; // is this OK? Or this is UB?

   std::cout << a << "\n" << b;

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

c++

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

两个凹多边形在给定方向上的交点

输入:两个3d凹面多边形AB,单位矢量d.没有多边形在时间t = 0 处相交.预期方向d不会经常变化,因此需要一些预处理阶段.

问题:在某个时间t确定两个凹多边形AB是否可以在方向d上相交.换句话说:如果我们在给定方向d上移动一个多边形,它是否会与另一个多边形相交?

输出: 1 - 交叉存在,0 - 其他.

algorithm 3d computational-geometry

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