我对使用的最佳实践几乎没有疑问shared_ptr.
问题1
复制shared_ptr便宜吗?或者我是否需要将其作为参考传递给我自己的帮助函数并返回值?就像是,
void init_fields(boost::shared_ptr<foo>& /*p_foo*/);
void init_other_fields(boost::shared_ptr<foo>& /*p_foo*/);
boost::shared_ptr<foo> create_foo()
{
boost::shared_ptr<foo> p_foo(new foo);
init_fields(p_foo);
init_other_fields(p_foo);
}
Run Code Online (Sandbox Code Playgroud)
问题2
我应该boost::make_shared用来构建一个shared_ptr吗?如果是,它提供了哪些优势?make_shared当T没有无参数构造函数时,我们如何使用?
问题3
怎么用const foo*?我找到了两种方法来做到这一点.
void take_const_foo(const foo* pfoo)
{
}
int main()
{
boost::shared_ptr<foo> pfoo(new foo);
take_const_foo(pfoo.get());
return 0;
}
Run Code Online (Sandbox Code Playgroud)
要么
typedef boost::shared_ptr<foo> p_foo;
typedef const boost::shared_ptr<const foo> const_p_foo;
void take_const_foo(const_p_foo pfoo)
{
}
int main()
{
boost::shared_ptr<foo> pfoo(new foo);
take_const_foo(pfoo);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
问题4
我怎样才能返回,检查NULL …
有人知道如何在Python中获取文件的编码.我知道您可以使用编解码器模块打开具有特定编码的文件,但您必须事先知道它.
import codecs
f = codecs.open("file.txt", "r", "utf-8")
Run Code Online (Sandbox Code Playgroud)
有没有办法自动检测文件使用哪种编码?
提前致谢
编辑:谢谢大家非常有趣的回答.您可能也对http://whatismyencoding.com/感兴趣,这是基于chardet(更多的网站是由瓶python框架提供支持)
Windows任务栏上的显示对象有几个应用程序,但没有实现IDeskBand接口.例如,联想电池表和笔记本电池电池信息.
例如:
笔记本电池信息http://home.arcor.de/batteryinfogateway/img/taskbar_new.png
在上图中,任务栏上的对象由应用程序放在那里,并在应用程序关闭时消失.这与IDeskBand不同,其中COM对象由explorer.exe直接加载.
可以在Windows中使用什么API /方法来实现这一目标?
我有一个网站,我希望我的Android访问者看到.它是在Joomla 1.5中创建的.问题是我有时会在G1上收到"页面包含太多服务器重定向"的消息.有谁知道这意味着什么或我如何解决问题?
有时我们从网站获得链接,当我们点击邀请链接时,它只是将我们发送到索引页面进行登录(因为我们没有登录该网站),当登录完成时,网站只是将我们重定向到链接我们点击了.
如何在PHP中实现这一目标?
输入:自0001年1月1日起的秒数
输出:此期间的全年数
我开发了一种我认为不是最佳解决方案的算法.我认为应该有一个不涉及循环的解决方案.有关算法的信息,请参阅代码块1. A)确定天数和B)根据闰年从迭代年份中迭代减去366或365,同时增加年份总数
这并不像Divide DayCount那样简单365.2425和截断,因为我们在1月1日遇到了失败点,0002(31536000秒/(365.2425*24*60*60))= 0.99934.
从0001年1月1日上午12:00开始,从非循环方法中提取年数的任何想法?
我需要弄明白这一点,因为我需要一个长时间嵌入的日期(存储秒数),以便我可以用1秒的精度跟踪多达1200万.
代码块1 - 从秒数(包括闰年)获得年数的低效算法
Dim Days, Years As Integer
'get Days
Days = Ticks * (1 / 24) * (1 / 60) * (1 / 60) 'Ticks = Seconds from Year 1, January 1
'get years by counting up from the beginning
Years = 0
While True
'if leap year
If (Year Mod 4 = 0) AndAlso (Year Mod 100 <> 0) OrElse (Year Mod 400 = 0) Then
If Days >= …Run Code Online (Sandbox Code Playgroud) 使用request.META['REMOTE_ADDR']代码获取IP时.这在本地系统上工作正常但是当托管在Web服务器上时,ip得到的是127.0.0.1 - 如何解决这个问题?
Java中vector的含义是线程安全和同步,它是如何使线程安全的.我正在查看实施的内部细节
只需git push对远程存储库执行操作,其master分支就会更新.在非裸存储库的情况下这是不合需要的,并且最近的Git版本显示的警告消息清楚地表明了这一点.
我希望能够推送到远程存储库,并更新其远程跟踪分支之一.稍后,当我登录到远程计算机并运行命令时,我可以选择将该远程跟踪分支合并到master.
我怎样才能做到这一点?或者有更好的方法将更改推送到非裸存储库吗?
在下载Fedora Linux时,它们提供了两个下载选项,我不知道它们的区别:x86和i386.那么他们之间有什么区别?