Siêu thị PDFTải ngay đi em, trời tối mất

Thư viện tri thức trực tuyến

Kho tài liệu với 50,000+ tài liệu học thuật

© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Tài liệu C++ Coding Standard Specification doc
MIỄN PHÍ
Số trang
60
Kích thước
541.6 KB
Định dạng
PDF
Lượt xem
1567

Tài liệu C++ Coding Standard Specification doc

Nội dung xem thử

Mô tả chi tiết

Project Support Team - IT Division

C++ Coding Standard

Specification

Version: 1.1

Issue: 5

Status: FINAL

ID: CERN-UCO/1999/207

Date: 5 January 2000

European Laboratory for Particle Physics

Laboratoire Européen pour la Physique des Particules

CH-1211 Genève 23 - Suisse

C++ Coding Standard Specification

5 January 2000 Version/Issue: 1.1/5

page ii FINAL

This document has been prepared using the Software Documentation Layout Templates that have been

prepared by the IPT Group (Information, Process and Technology), IT Division, CERN (The European

Laboratory for Particle Physics). For more information please contact [email protected].

FINAL page iii

C++ Coding Standard Specification

Abstract Version/Issue: 1.1/5

Abstract

This document defines a C++ coding standard, that should be adhered to when writing C++

code. It is the result of a work started in a Working Group, in the context of the SPIDER

project, formed by representatives from different LHC experiments, with the goal to bring

together their existing coding standards.

Document Control Sheet

Table 1 Document Control Sheet

Document Title: C++ Coding Standard Specification

Version: 1.1 ID: CERN-UCO/1999/207

Issue: 5 Status: FINAL

Edition: [Document Edition] Created:

Date: 5 January 2000

Available at: http://consult.cern.ch/writeup/cppstd/

Keywords: coding standard, C++

Tool Name: Adobe FrameMaker Version: 5.5

Template: Software Doc Layout Templates Version: Vb1

Authorship Written by: S.Paoli

Contributors: P.Binko (LHCb), D.Burckhart (ATLAS), S.M.Fisher (ATLAS), I.Hriv￾nacova (ALICE), M.Lamanna (COMPASS), M.Stavrianakou (ATLAS),

H.-P.Wellisch (CMS)

Reviewed by: S.Giani, A.Khodabandeh

Approved by: G.H.Pawlitzek

C++ Coding Standard Specification

Document Status Sheet Version/Issue: 1.1/5

page iv FINAL

Document Status Sheet

Table 2 Document Status Sheet

Title: C++ Coding Standard Specification

ID: CERN-UCO/1999/207

Version Issue Date Reason for change

1.0 0 5.3.1999 Release to the Review Board for review

1.1 1 4.8.1999 First public release

1.1 2 13.8.1999 Changed the item identifiers in paragraph 3.8

1.1 3 17.8.1999 Corrected title of item CB1

1.1 4 20.10.1999 Added CERN write-up reference on the front page

1.1 5 5.1.2000 Added missing “int” in item CA5.

Changed SPIDER to Project Support Team. New e-mail address:

[email protected]

FINAL page v

C++ Coding Standard Specification

Table of Contents Version/Issue: 1.1/5

Table of Contents

Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii

Document Control Sheet. . . . . . . . . . . . . . . . . . . . . . . . iii

Document Status Sheet . . . . . . . . . . . . . . . . . . . . . . . . iv

Table of Contents . . . . . . . . . . . . . . . . . . . . . . . . . . v

1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1 Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . .1

1.2 Intended Audience . . . . . . . . . . . . . . . . . . . . . . .1

1.3 Authors . . . . . . . . . . . . . . . . . . . . . . . . . . .1

1.4 Evolution and updating responsibility . . . . . . . . . . . . . . . .2

1.5 Approach . . . . . . . . . . . . . . . . . . . . . . . . . .2

1.5.1 Naming . . . . . . . . . . . . . . . . . . . . . . . . .3

1.5.2 Coding . . . . . . . . . . . . . . . . . . . . . . . . .3

1.5.3 Style . . . . . . . . . . . . . . . . . . . . . . . . . .3

1.5.4 Information provided for the items . . . . . . . . . . . . . . .3

1.6 Organization of this document . . . . . . . . . . . . . . . . . . .4

1.7 References . . . . . . . . . . . . . . . . . . . . . . . . . .4

1.8 Definitions and Acronyms . . . . . . . . . . . . . . . . . . . .5

2 Naming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.1 Naming of files . . . . . . . . . . . . . . . . . . . . . . . .7

2.2 Meaningful Names . . . . . . . . . . . . . . . . . . . . . . .8

2.3 Illegal Naming . . . . . . . . . . . . . . . . . . . . . . . .8

2.4 Naming Conventions . . . . . . . . . . . . . . . . . . . . . .9

3 Coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.1 Organizing the Code . . . . . . . . . . . . . . . . . . . . . 13

3.2 Control Flow . . . . . . . . . . . . . . . . . . . . . . . . 15

3.3 Object Life Cycle . . . . . . . . . . . . . . . . . . . . . . . 16

3.3.1 Initialization of Variables and Constants . . . . . . . . . . . . 16

3.3.2 Constructor Initializer Lists . . . . . . . . . . . . . . . . . 18

3.3.3 Copying of Objects . . . . . . . . . . . . . . . . . . . . 19

3.4 Conversions . . . . . . . . . . . . . . . . . . . . . . . . 20

3.5 The Class Interface . . . . . . . . . . . . . . . . . . . . . . 20

3.5.1 Inline Functions . . . . . . . . . . . . . . . . . . . . . 21

3.5.2 Argument Passing and Return Values . . . . . . . . . . . . . 21

3.5.3 const Correctness . . . . . . . . . . . . . . . . . . . . 22

3.5.4 Overloading and Default Arguments . . . . . . . . . . . . . . 23

3.6 new and delete . . . . . . . . . . 23

C++ Coding Standard Specification

Table of Contents Version/Issue: 1.1/5

page vi FINAL

3.7 Static and Global Objects . . . . . . . . . . . . . . . . . . . . 24

3.8 Object-Oriented Programming . . . . . . . . . . . . . . . . . . 24

3.9 Assertions and error conditions . . . . . . . . . . . . . . . . . . 26

3.10 Error Handling . . . . . . . . . . . . . . . . . . . . . . . 27

3.11 Parts of C++ to Avoid . . . . . . . . . . . . . . . . . . . . . 28

3.12 Readability and maintainability . . . . . . . . . . . . . . . . . 31

3.13 Portability . . . . . . . . . . . . . . . . . . . . . . . . . 32

4 Style . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.1 General aspects of style . . . . . . . . . . . . . . . . . . . . 35

4.2 Comments . . . . . . . . . . . . . . . . . . . . . . . . . 37

A Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

B List of the items of the standard . . . . . . . . . . . . . . . . . . . . 43

C Correspondence of item numbers. . . . . . . . . . . . . . . . . . . . 51

Tải ngay đi em, còn do dự, trời tối mất!