Skip to content

Instantly share code, notes, and snippets.

View qiaohaijun's full-sized avatar
🎯
Focusing

qiao hai-jun qiaohaijun

🎯
Focusing
  • Beijing,China
View GitHub Profile
#include <stdio.h>
int main()
{
printf("%s\n",__FILE__);
printf("%d\n",__LINE__);
printf("%s\n",__TIME__);
printf("%s\n",__DATE__);
}

现代c++与传统c++相比的优点

  1. 资源管理
  2. 事件回调

muduo的定位

  1. 非阻塞io
  2. 事件驱动

首先要说的是

  1. 函数指针的语法确实不好理解,尤其有了std::function,更加突出了函数指针的不人性化
void MyFun(int x);
//指针表示法
void (*FunP)(int);
  1. ::Ant 表根命名空间,或匿名空间
  2. 同时存在 ::Ant::i::Ant::blas::i, Ant::detail::i 时,在 ::Ant::detail 中使用i时,默认调用 Ant::detail::i
  3. 平级namespace 调用用,要加相应的命名空间
  4. 域内命名空间可省
  5. 即使存在多个相同名字的命名空间,不会报错,按最局部分调用原则调用,如同全局变量与局部变量名字一样时,优先调用局部变量

这个问题是在看 2003年出版的pthread的书的时候看到一个 #define 宏中间的语法

#define xxx do {
\} while(0)

其实都是宏展开闹得。

ANSI C标准中有几个标准预定义宏(也是常用的):

  1. LINE:在源代码中插入当前源代码行号
  2. FILE:在源文件中插入当前源文件名
  3. DATE:在源文件中插入当前的编译日期
  4. TIME:在源文件中插入当前编译时间
  5. STDC:当要求程序严格遵循ANSI C标准时该标识被赋值为1;
  6. __cplusplus:当编写C++程序时该标识符被定义。

首先是ofo不可能内部没有数据统计,不可能不知道他们制造的自行车的质量有多差。

  1. ofo 自行车质量差,尤其跟bluegogo和摩拜比起来
  2. 花大价钱做广告而不是专心提升自行车质量
  3. 太阳能+智能车锁已经很普遍的情况下,竟然搞出来一个不使用GPS的系统,我就不明白了
  4. 车体质量不行

如果这样的企业也能够成为共享单车领域的一个巨人,我真的不知道该说什么好

其实我有点奇怪的是,为什么c++整出来这么多的语法。


右值引用自己本身就是个坑,如这个楼里的一个回答,你并不能毫无精神负担的使用它


RAII 本质

说了这么多了,RAII的本质内容是用对象代表资源,把管理资源的任务转化为管理对象的任务,将资源的获取和释放与对象的构造和析构对应起来,从而确保在对象的生存期内资源始终有效,对象销毁时资源一定会被释放。说白了,就是拥有了对象,就拥有了资源,对象在,资源则在。所以,RAII机制是进行资源管理的有力武器,C++程序员依靠RAII写出的代码不仅简洁优雅,而且做到了异常安全。在以后的编程实际中,可以使用RAII机制,让自己的代码更漂亮。


RAII 是一种思想,这个思想不光可以用在c++中,也可以用在其他编程语言。


// Copyright (c) 2009 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef BASE_SINGLETON_H_
#define BASE_SINGLETON_H_
#include "base/at_exit.h"
#include "base/atomicops.h"
#include "base/dynamic_annotations.h"