我希望您能帮助理解在C++中使用/禁用异常的可能方法.
我的问题不是关于什么是最佳选择,而是关于什么是可能的选择以及这些选项意味着什么.
目前,我能想到的选择是:
我想知道我对选项的理解是否正确,以及我可能错过了什么或理解错误.
我还想知道给予基本异常安全的限制是否适用于选项2-4(异常总是最终导致程序终止)或者异常安全要求是否/如何放宽/限制于特定情况(例如处理外部资源) ,文件).
我当前的项目工作流程如下:
我希望能够在 Visual Studio Code 中调试我的项目。为此,我定义了一个通过 catkin 构建可执行文件的任务,名为“catkin build all”,并且我将第二个任务定义为:
{
"type": "shell",
"label": "load programs",
"command": "source /some_folder/setup.sh",
"group": "build",
"dependsOn": ["catkin build all"]
}
Run Code Online (Sandbox Code Playgroud)
这是我的 lanuch.json 启动配置的“preLaunchTask”。
启动调试将正确编译项目,但执行失败并出现错误“启动:程序 myProgram 不存在”。事实上,如果 setup.sh 没有来源,则无法找到程序 MyProgram,但应该由“preLaunchTask”来源。
在我的 launch.json 中,我还可以将“program”设置为“/full/path/to/myProgram”而不是“myProgram”,但在这种情况下找不到共享库,因为 setup.sh 会处理这个问题。
我还尝试在 shell 上获取 setup.sh 源,然后从同一 shell 启动 Visual Studio 代码,但这并没有解决“启动:程序 myProgram 不存在”问题。
任务是否在不同的 shell 上运行?如何让 preLaunchTask 与后续程序代码在同一个 shell 中运行?或者关于如何让我的工作流程正常工作的任何其他提示?
为了在不同的场景中测试算法,需要迭代地调用matlab函数alg.m.
alg.m中的瓶颈是这样的:
load large5Dmatrix.mat
small2Dmatrix=large5Dmatrix(:,:,i,j,k) % i,j and k change at every call of alg.m
clear large5Dmatrix
Run Code Online (Sandbox Code Playgroud)
为了加速我的测试,我想large5Dmatrix
只在第一次调用alg.m时加载,并且对将来的调用有效,可能只在alg.m的范围内
有没有办法在matlab中将其设置large5Dmatrix
为全局?
您能想到在alg.m中使用这个大的常量值矩阵的更好方法吗?