- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
如果我有一些可以在编译时计算的结果集,并且我想在程序的其他地方使用它们,我可以将它们放在一个(共享的?)库中以供以后链接吗?这样会慢吗?
例如,我可以在编译时使用
计算阶乘template<size_t N>
struct Factorial {
constexpr static size_t value = Factorial<N-1>::value * N;
};
template<>
struct Factorial<0> {
constexpr static size_t value = 1;
};
// Possibly an instantiation for a max value?
// template class Factorial<50>;
然后为了在代码中使用它,我只写 Factorial<32>::value
,或类似的。
如果我假设我的真实值需要更长的时间来计算,那么我可能想确保它们不会在每个构建/任何认为旧构建无效的构建上重新计算。
因此,我将计算代码移到一个单独的项目中,并将其编译为共享库。
现在,为了使用它,我将我的主程序链接到库,并且 #include
标题。
然而,库文件相当小(而且看起来独立于创建模板所传递的值),所以我想知道实际上库是否只包含创建 Factorial
的方法。结构,而不是预先计算的数据。
如何计算一系列值,然后在单独的程序中使用它们?
首选提供编译时值注入(inject)的解决方案 - 我注意到加载共享库不属于此类(我认为)
最佳答案
这里发生的是进行计算的实际“代码”仍在标题中。将它放入共享库并没有真正做任何事情;编译器仍在为您的主程序重新计算阶乘。 (所以,你的直觉是正确的。)
更好的方法是编写另一个程序,将值吐出作为 C++ 常量数组的源代码,然后将它们复制并粘贴到您的代码中。这可能需要大约 5 行 Python,而您的 C++ 代码将快速编译和运行。
关于c++ - 将结果存储在单独的库中以供以后加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33360222/
命令 svn status 返回如下内容: ? SomeClient\BUTCHERED.docx M SomeClient\Development notes.txt ?
我是一名优秀的程序员,十分优秀!