我正在阅读Scott Meyers的"Effective C++"一书.有人提到有内置指针tr1::shared_ptr和tr1::weak_ptr行为,但它们跟踪tr1::shared_ptrs指向对象的数量.
这称为引用计数.这在防止非循环数据结构中的资源泄漏方面效果很好,但是如果两个或多个对象包含tr1::shared_ptrs形成循环,则循环可以使彼此的引用计数保持在零以上,即使所有指向循环的外部指针都已被破坏.
那是tr1::weak_ptrs进来的地方.
我的问题是循环数据结构如何使引用计数高于零.我恳请一个示例C++程序.问题是如何解决的weak_ptrs?(再次,请举例).
项目向前移动,我可以看到为什么创建.bat文件来做事情会让人上瘾!我现在可以定期保存somefile.txt,然后通过添加时间和日期重命名somefile.txt来创建一个唯一的文件名
ren somefile.txt somefile_%time:~0,2%%time:~3,2%-%date:~-10,2%%date:~3,2%%date:~-4,4%.txt
Run Code Online (Sandbox Code Playgroud)
例如,上面的代码刚刚重命名somefile.txt为somefile_1317_13022011.txt (1317hrs on 13th February 2011)
我跑了
ren somefile.txt somefile_%time:~0,2%%time:~3,2%-%date:~-10,2%%date:~7,2%%date:~-4,4%.txt
Run Code Online (Sandbox Code Playgroud)
昨天,它成功运行到午夜,然后崩溃(语法错误)虽然它保存为日期(2011年1月12日)的12012011而不是正确的日期12022011.
当前版本是否会在午夜过后?我对英国与美国的日期格式混淆了吗?
我的应用程序中有一个UITextField,在IB中创建.我需要验证相同的.即它应该是2到20之间的数字
进行验证的最佳方法是什么?通过代码或者这可以完全由IB控制吗?
请让我知道验证该领域的方法.
我正在学习CMake,阅读"掌握CMake"一书和其他在线资料.我想知道是否有一些命令行选项的详细文档,例如生成的文件使用的-H和-B.或者"-E echo"还有其他着色选项.我还没有找到一些这方面的文档.
我正在运行一个脚本,通过使用执行许多可执行文件
subprocess.call(cmdArgs,stdout=outf, stderr=errf)
Run Code Online (Sandbox Code Playgroud)
when outf/ errf是None或文件描述符(stdout/的不同文件stderr).
有什么方法可以执行每个exe,以便将stdout和stderr一起写入文件和终端?
是否有可能强制模板来自某个基类,所以我可以调用基类函数?
template <class T>
void SomeManager::Add(T)
{
T->CallTsBaseClassFunction();
//... do other stuff
}
Run Code Online (Sandbox Code Playgroud) 如果我这样做,例如:
(defmacro qqq [] '(toString [this] "Qqq"))
(reify Object (qqq))
Run Code Online (Sandbox Code Playgroud)
它失败是因为reify看到(qqq)而不是(toString [this] "Qqq").
在通常的解决办法是,包"具体化"与我自己的事情调用宏,但它更长,更具侵入性.
如何使我的宏更强大,通常的宏首先扩展?
期待像:
(defmacro ^{:priority 100500} qqq [] '(toString [this] "Qqq"))
(reify Object (qqq))
Run Code Online (Sandbox Code Playgroud)
要么
(defmacro qqq [] '(toString [this] "Qqq"))
(expand-first #{qqq} (reify Object (qqq)))
Run Code Online (Sandbox Code Playgroud) 任何人都可以想到一种方法来将以下方案转换为非表格html布局吗?
也许还有一些值得一提的事情.
提前致谢!
我想每天更新到最新版本的selenium代码(http://selenium.googlecode.com/svn/trunk).
我只是在我的eclipse中选择文件夹,右键单击,团队并选择更新到HEAD.Buty,这会留下一些目录和文件的脏副本.
我正在寻找的是:我总是希望检查从存储库到本地目录的最新代码,覆盖本地更改,如果有的话
注意:我没有提交权限,我只是希望存储库中的最新代码覆盖我的本地更改.
这是一个有点模糊且难以查明原因的问题之一.我会尽量保持简单.
我创建了一个带有如下标题的C类:
C_Class.h
void do_something(void);
C_Class.c
void do_something(void)
{
}
Run Code Online (Sandbox Code Playgroud)
然后我有一个.mm文件工作得很好,直到其中一个函数我添加了我之前创建的C sub_routine:
#import "C_Class.h" // included in the .h file
// then in the .mm file
- (void)working_function{
.... some working code ......
do_something();
}
Run Code Online (Sandbox Code Playgroud)
问题是我收到此错误:
-[MyDotMMfile working_function] in MyDotMMfile.o
Symbol(s) not found
Collect2:ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
这个问题已在其他地方得到解答,但答案似乎与我的情况无关.我在XCode工作,已停止运行我的应用程序,重建它仍然得到相同的错误.因为我是编程新手,所以我觉得它与我调用C函数的方式有关.
有帮助吗?
编辑1
如果有人感觉如此无私,他们可以在这里下载实际文件.
c++ ×2
objective-c ×2
add ×1
c ×1
c++11 ×1
clojure ×1
cmake ×1
cmd ×1
command-line ×1
css ×1
date ×1
eclipse ×1
filenames ×1
html ×1
inheritance ×1
iphone ×1
macros ×1
options ×1
parent ×1
python ×1
shared-ptr ×1
subprocess ×1
svn ×1
templates ×1
time ×1
uitextfield ×1
weak-ptr ×1