- 博客(24)
- 资源 (23)
- 收藏
- 关注
翻译 C++核心准则边译边学-P.10 不变的优于可变的
Reason(原因)It is easier to reason about constants than about variables. Something immutable cannot change unexpectedly. Sometimes immutability enables better optimization. You can't have a data race ...
2019-11-30 18:16:26 213
翻译 C++核心准则边译边学-P.9 不要浪费时间和空间
P.9: Don't waste time or space(不要浪费时间和空间)Reason(原因)This is C++.我们在用C++。译者注:之所以选择C++而不是其他语言,就是希望使用最小的内存,获得更快的性能。没有道理不考虑时间和空间。Note(注意)Time and space that you spend well to achieve a goal (e....
2019-11-29 19:56:40 361
翻译 C++核心准则边译边学-P.8 不要泄漏任何资源
P.8: Don't leak any resources(不要泄漏任何资源)Reason(原因)Even a slow growth in resources will, over time, exhaust the availability of those resources. This is particularly important for long-running progr...
2019-11-28 18:57:07 281
翻译 C++核心准则边译边学-P.7 尽早捕捉执行时错误
P.7: Catch run-time errors early 尽早捕捉执行时错误Reason(原因)Avoid "mysterious" crashes. Avoid errors leading to (possibly unrecognized) wrong results.避免“原因不明的”崩溃。避免导致(可能是没有被认识的)错误结果的问题。Example(示例)...
2019-11-27 19:56:55 374
翻译 C++核心准则边译边学-P.6 不能在编译时检查的,应当可以在执行时检查
P.6: What cannot be checked at compile time should be checkable at run time(不能在编译时检查的应当可以在执行时检查)Reason(原因)Leaving hard-to-detect errors in a program is asking for crashes and bad results.在程序中留下难...
2019-11-26 18:49:58 365
翻译 C++核心准则边译边学-P.5 编译时检查比执行时检查更好
P.5: Prefer compile-time checking to run-time checking(编译时检查比执行时检查更好)Reason(原因)Code clarity and performance. You don't need to write error handlers for errors caught at compile time.代码的清晰和性能。你不需...
2019-11-25 18:55:06 347
翻译 C++核心准则边译边学-X.5:尽量不使用类型转换
按照C++核心准则的说法,应该尽量减少类型转换的使用,如果必须使用则使用narrow_cast和narrow。以下分几种情况讨论这个问题。本来就不应该使用的情况:观察如下代码:class BaseClass{public: void bfun(){ cout << "BaseClass::bfun()" << endl; } ...
2019-11-24 14:43:22 629
翻译 C++核心准则边译边学-X.4:使用span解决数组退化和越界访问
数组是C++从C语言继承过来的特性,使用方便同时又可以提供绝佳的性能,因此被广泛使用。但是简便的另一面就是风险,其中最大的两个问题就是退化(array decay)和越界访问(range errors)。本文介绍如何提前使用C++20新特性span解决数组退化和越界访问的问题。首先看使用数组的最常见代码:int data[10];for(size_ti=0;i<...
2019-11-23 18:50:32 7630
翻译 C++核心准则边译边学-X.3 使用variant代替union
union(联合体)和struct相似,也可以包含多个数据成员,但是不同的是同时只允许一个成员有效,因此经常作为作为节约空间的类使用。考虑下面的代码: union Uv { int i; double df; }; Uv u1; u1.i = 100; std::cout << "u1.i=" << u1...
2019-11-22 20:35:39 920 1
翻译 C++核心准则边译边学-P.4 理想情况下,程序应该静态类型安全
P.4: Ideally, a program should be statically type safe(理想情况下,程序应该静态安全)Reason(原因)Ideally, a program would be completely statically (compile-time) type safe. Unfortunately, that is not possible. Pro...
2019-11-21 20:06:34 431
翻译 C++核心准则边译边学-X.2:安装并使用GSL
在前一篇文章中,出现了下面的代码gsl::index i = 0;while (i < v.size()) { // ... do something with v[i] ...}其中引人注目的一个地方是:gsl::index。关于这个gsl,如果去网上搜,可能找到的是这样的结果:挺像的吧,但其实这并不是。这里的gsl指的是Guidelines sup...
2019-11-20 19:57:38 1218
翻译 C++核心准则边译边学-P.3 表达意图
Reason(原因)Unless the intent of some code is stated (e.g., in names or comments), it is impossible to tell whether the code does what it is supposed to do.只要代码不是意图的直接陈述(例如在名称或者注释中),就可能存在实际行为和意图不一致的...
2019-11-19 19:53:40 351
翻译 C++核心准则边译边学-P.2 使用ISO标准C++写代码
P.2: Write in ISO Standard C++(使用ISO标准C++写代码)Reason(原因)This is a set of guidelines for writing ISO Standard C++.这是一套如何写ISO标准C++代码的指南。译者注:不知道作者是不是开玩笑。似乎这样的答案更靠谱:ISO Standard C++会给你带来。。。Note(注...
2019-11-18 19:49:31 487
翻译 C++核心准则边译边学-X.1:自定义字面量
在前一篇文章中有这么一段代码:change_speed(Speed s); // better: the meaning of s is specified//较好:定义了s的含义// ...change_speed(2.3); // error: no unit 错误:没有单位change_speed(23m...
2019-11-16 19:36:50 429
翻译 C++核心准则边译边学-P.1:直接用代码表达想法
P.1: Express ideas directly in code(直接用代码表达想法)Reason(原因)Compilers don't read comments (or design documents) and neither do many programmers (consistently). What is expressed in code has defined se...
2019-11-14 19:41:45 472 1
翻译 C++核心准则边译边学-P:基本原则
P: Philosophy(基本原则)The rules in this section are very general.这个分区中的规则都是一般且普遍适用的。Philosophy rules summary:基本原则一览:。P.1: Express ideas directly in code直接用代码表达想法。P.2: Write in ISO Standard ...
2019-11-13 18:59:33 433
翻译 C++核心准则边译边学-文档结构
In.struct: The structure of this document(本文档的结构)Each rule (guideline, suggestion) can have several parts:每条规则(指南,建议)都会包含几个部分:。The rule itself -- e.g., no naked new规则本身--例如:避免直接使用new运算符。A ru...
2019-11-12 19:53:08 378
翻译 C++核心准则边译边学-实施建议
In.force: Enforcement(实施建议)Rules with no enforcement are unmanageable for large code bases. Enforcement of all rules is possible only for a small weak set of rules or for a specific user community....
2019-11-11 19:51:30 539
翻译 C++核心准则边译边学-目标之外
In.not: Non-aims(目标之外)The rules are not intended to be minimal or orthogonal. In particular, general rules can be simple, but unenforceable. Also, it is often hard to understand the implications of ...
2019-11-10 18:34:50 318
翻译 C++核心准则边译边学-不必惊慌!
In.0: Don't panic!(不必惊慌)Take the time to understand the implications of a guideline rule on your program.花点时间理解准则可能为你程序带来的的影响。These guidelines are designed according to the "subset of superset" ...
2019-11-08 18:40:23 710
翻译 C++核心准则边译边学-介绍
In: Introduction(介绍)This is a set of core guidelines for modern C++ (currently C++17) taking likely future enhancements and ISO Technical Specifications (TSs) into account. The aim is to help C++ pr...
2019-11-07 19:10:36 775
翻译 C++核心准则边译边学-摘要
Abstract(摘要)This document is a set of guidelines for using C++ well. The aim of this document is to help people to use modern C++ effectively. By "modern C++" we mean effective use of the ISO C++ st...
2019-11-06 19:27:01 402
翻译 C++核心准则边译边学-序言
C++核心准则(C++ Core Guidelines)是由C++语言两位大神级的人物发表的有关C++语言编程的指导性文件,目前还处于不断修改和完善的过程中。从今天开始作者尝试翻译和学习该文档。在接下来的文章中,如果没有特别说明,英文原文都来自下面的链接,而中文部分是作者的翻译和理解。https://github.com/isocpp/CppCoreGuidelines/blo...
2019-11-05 19:35:28 511
原创 Python GUI编程入门(37)-通用的ListView类
Tkinter主题控件的Treeview除了体统树状视图之外,还可以提供列表视图。但是由于控件本身的复杂性,如果想正确的使用这个控件,或多或少都需要一些时间来调查和学习。本文提供一个通用的ListView类以简化这个过程。这个类除了提供一般的列表功能之外,还提供一个简单的就地编辑功能:当用户双击文件名时,可以触发一个文本输入框直接编辑文件名。class ListVie...
2019-11-04 18:57:24 3143 1
Aduino UNO D1 R32 硬件包
2020-03-15
[Android应用开发记录-字幕播放器(5)完善]附属工程,源码
2011-09-07
Android应用开发记录-字幕播放器(5)完善附带工程,源码
2011-09-07
LyricPlayer for Android 2.1
2011-09-03
Android应用开发记录-字幕播放器(4)完成
2011-08-28
Android下的原创小游戏-九宫格
2011-08-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人