Google App Engine在其Python SDK中提供了实验性的,前卫的OAuth服务,但未能提供简单的示例.有没有人成功地使用它?如果是这样,你能提供一个片段吗?
Libjingle似乎非常强大,并附带了大量示例程序和扩展.然而,我无法使用它,我在IRC上与之交谈的人告诉我,他们发现API很乱,我宁愿使用别的东西.
但是我愿意再试一次.有没有人有一个很好的教程?还是好好介绍不同的课程,开始?(谷歌的官方文件不是).
我曾经在编程类中告诉过,C++通过让程序员在函数块中的任何地方声明其变量来实现更好的可读性.这样,变量就与处理它的代码部分组合在一起.
为什么我们不为包括做同样的事情?换句话说,为什么不鼓励将include文件放在实际使用它的定义旁边?
parser::parser()
{
// some initialization goes there which does not make use of regex
}
#include <boost/regex.hpp>
parser::start()
{
// here we need to use boost regex to parse the document
}
Run Code Online (Sandbox Code Playgroud) 我真的很惊讶地看到它std::count返回了一个iterator_traits<InputIterator>::difference_type,这反过来指的long int是我的平台上的一个.
这是为什么?容器中的负计数元素没有任何意义.
我想知道是否放置assert( this != nullptr );每个成员函数都是个好主意.我相信编译器可以决定完全忽略这个断言,因为假设它this不能为null,因此断言始终为true并且可以在编译时解析.
但是如果编译器没有做出这个假设,那么这个断言对于及早发现问题非常有用.
编译器会假设这个吗?
在Exceptional C++中,Herb Sutter在第35项中写道:
喜欢使用免费商店(新/删除).避免使用堆(malloc/free).
我为什么要?
如果某个实现选择new通过使用来实现malloc,则可能会产生开销,因此就性能而言,这看起来像是一个糟糕的建议.
我熟悉BSD插座,翻阅手册sendto,我碰到了MSG_CONFIRM旗帜,这对我来说是非常神秘的.
描述说:
告诉链接层转发进度:您从另一方获得了成功的回复.如果链路层没有得到这个,它将定期重新修复邻居(例如,通过单播ARP).仅在SOCK_DGRAM和SOCK_RAW套接字上有效,目前仅针对IPv4和IPv6实现.
在快速查看手册之后arp,我明白标记某些东西MSG_CONFIRM可以防止ARP映射MAC地址remote远程机器的IP地址被认为是陈旧的.
现在我很奇怪,因为我看不出有任何理由,我应该不会把它,因此,他们为什么不执行直接在库中.为什么应用层应该处理在链路层发生的任何事情.
所以我错过了什么?我什么时候应该设置它,还是不设置它?
我想围绕文件描述符创建一个 RAII 包装器。由于对象可能会在线程之间传递,它确实是一个共享资源:这就是我通过使用shared_ptr带有自定义析构函数的a 进行第一个实现的原因。
struct file_descriptor
{
file_descriptor( const std::string & pathname, int flags )
:m_fd( initialize( pathname, flags ) )
{
}
file_descriptor( const int opened_fd )
:m_fd( initialize( opened_fd ) )
{
}
operator int() const { return *m_fd; }
private:
std::shared_ptr<int> initialize( const int opened_fd )
{
std::shared_ptr<int> ptr_to_fd;
try
{
int * shared_fd = new int;
ptr_to_fd = std::shared_ptr<int>( shared_fd, file_descriptor_closer() );
*shared_fd = opened_fd;
}
catch( std::bad_alloc & )
{
close( opened_fd ); …Run Code Online (Sandbox Code Playgroud) 创建一个文件并用零填充:
dd if=/dev/zero of=/tmp/zeroes count=1
Run Code Online (Sandbox Code Playgroud)
编写这个小程序来提取它在文件中遇到的第一个无符号整数.
#include <assert.h>
#include <fstream>
int main()
{
std::ifstream reader( "/tmp/zeroes", std::ios_base::binary );
uint32_t number;
reader >> number;
assert( !reader.fail() );
}
Run Code Online (Sandbox Code Playgroud)
为什么断言被触发?
我有这个功能:
fstream open_user_file() const
{
...
}
Run Code Online (Sandbox Code Playgroud)
但我的编译器抱怨fstream隐式删除了复制构造函数.鉴于编译器执行RVO,为什么选择复制构造函数而不是移动构造函数?
否则,最好的方法是什么?