为什么static_assert需要在类定义的一边?
失败的代码
#include <type_traits>
class A
{
public:
A(A&&) noexcept {}
static_assert(std::is_nothrow_move_constructible<A>::value, "ERROR");
};
int main()
{
}
Run Code Online (Sandbox Code Playgroud)
工作代码
#include <type_traits>
class A
{
public:
A(A&&) noexcept {}
};
static_assert(std::is_nothrow_move_constructible<A>::value, "ERROR");
int main()
{
}
Run Code Online (Sandbox Code Playgroud)
什么时候在类或结构的定义中使用static_assert是否合适?
我有一个std::vector<std::vector<double>>,我想将其转换为a Rcpp::DataFrame或a Rcpp::NumericMatrix.
我目前的解决方案看起来像这样,它远非理想; 它产生了一个数字列表.
RcppExport SEXP Foo(...)
{
std::vector<std::vector<double>> result;
/// ... Do some work.
return Rcpp::wrap(result);
}
Run Code Online (Sandbox Code Playgroud)
注意事项:不会修复列数和行数.在每次运行之间,这些可以改变 我之所以提到这一点是因为到目前为止我发现的许多解决方案都涉及在编译时知道列.
如果可能的话,我希望解决方案完全包含在c ++中; 即R用户应该能够调用该函数,而不必将结果处理成数据帧或矩阵.