小编Afi*_*efh的帖子

为什么C++没有std::invocable_r概念?

C++20 添加了概念,标准库中包含了相当多的概念。有一个概念特别引起了我的注意:std::invocable,它验证可以使用一组参数来调用函子。

std::invocable只是 的语法糖std::is_invocable。然而,标准库进一步定义了std::is_invocable_r哪些测试函子是否可以使用一组参数调用,而且一旦调用它就返回特定类型。nothrow这两个实用程序也有不同的版本。然而,标准中没有定义等效的概念。

该标准没有定义这些概念是否有原因,或者只是一个疏忽?是否有一些普通读者没有注意到的细节导致委员会决定不包括这些内容?

c++ language-design c++-concepts c++20

12
推荐指数
1
解决办法
1460
查看次数

将对象转换为引用?

我最近一直在阅读一些OSS代码,偶然发现了这个奇特的部分:

class Foo { ..... };
void bar() {
    Foo x;
   Foo *y=new Foo();
   x=(const Foo &) *y;
}
Run Code Online (Sandbox Code Playgroud)

对于我的生活,我找不到关于将对象转换为const引用的行为的文档.

c++ casting reference

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

将C++对象返回给Java

我有几个JNI函数必须在同一个c ++对象上工作.我想将该对象保存在调用JNI函数的java对象中,但似乎Java无法存储稍后要访问的函数的指针.

好吧,我意识到我在解释自己的工作非常糟糕,所以这里有一个例子:

void clear_numbers(JNIEnv *env, jobject me) {
   me.myCppVector.clear();
}

void set_number(JNIEnv *env, jobject me, jint index, jint num) {
   me.myCppVector[index]=num;
}

jint get_number(JNIEnv *env, jobject me, jint index) {
   returnme.myCppVector[index];
}
Run Code Online (Sandbox Code Playgroud)

我的问题是创建一个jobject.myCppVector,这样我就可以从不同的函数调用中使用它.

我希望有人理解我的谣言

c++ java java-native-interface

8
推荐指数
1
解决办法
2821
查看次数

用于信号处理的C++库

我在matlab编写了一个研究项目,它使用了很多我不想在C++中重新实现的函数,所以我正在寻找库来处理这些问题.我需要的功能是:(按重要性顺序)

  1. 希尔伯特变换
  2. 矩阵函数(行列式,逆,乘......)
  3. 寻找多项式的根(度数大于5)
  4. FFT
  5. 卷积
  6. 相关性(matlab中的xcorr)

c++ math matlab signal-processing

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

std::deque 和 boost::deque 有什么区别?

std::dequeCppReference 中有相当详细的文档,但是它boost::deque文档似乎与标准的文档等效,只是添加了一些方法,例如nthindex_of

我缺少的两个类之间还有其他区别吗?

c++ boost

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