c++ - 当 RCPP 程序无法正常工作时,有没有办法阻止 RGui 崩溃?
问题描述
我正在使用 Rcpp 运行 C++ 代码,使用 RGui(版本 3.4.1)作为用户界面。当我在 RGui 中运行相关程序时,我经常对正确编译但导致错误(例如搜索超出数组末尾)的 C++ 代码进行更改,从而导致 RGui 崩溃。这很严重,因为我必须重新打开 RGui,重新打开我的 R 脚本(有时会丢失未保存的更改),再次设置工作目录等,然后才能重新编译 C++ 代码并以这样的方式运行程序寻找问题或测试修正的方法。有时它会立即再次崩溃,因为我没有修复或绕过问题。
有没有办法改变 Rcpp 的运行方式,使 RGui 返回错误消息而不是在这些情况下崩溃?
解决方案
简要地:
- 它拼写为 Rcpp。大写 R,小写 cpp。
- 是的,没有错误:)
- 一般来说,2.是唯一可行的答案。如果您需要托管语言,请使用 R。
- 如果代码使您的环境崩溃,请在环境之外进行测试。严重地。这就是为什么我(共同)编写更小并在命令行上测试“原始代码”的原因:它只能关闭命令行应用程序。
- 我们在例如 RcppArmadillo 中确实有一个功能来测试“越界”向量访问:使用
x.at(i,j)
它会发出警告。见http://arma.sourceforge.net/docs.html#element_access
推荐阅读
- javascript - 如何在循环javascript中显示倒计时?
- r - R - 计算长向量中的出现次数
- sql - 将 2 个源表中的非空列更新为目标表的空列
- javascript - 在 Angular 1 项目中包含 Moment.js
- python - 在 Python 中使用 selenium 抓取网站时访问被拒绝
- sql - T-SQL:日期修改,只有天和月
- ios - 在 uitableviewcell 自定义视图中渲染 AdaptiveCard
- python - 向字典键添加多个值
- elasticsearch - Elasticsearch 分页多搜索 API
- database - 从命令行或 VBScript 在 Windows 中创建数据库?