Live briefing
Everything about One Definition Rule
Rule of programming language C++
The One Definition Rule (ODR) is an important rule of the C++ programming language that prescribes that classes/structs and non-inline functions cannot have more than one definition in the entire program and templates and types cannot have more than one definition by translation unit. It is defined in the ISO C++ Standard 2003, at section 3.2. Some other programming languages have similar but differently defined rules towards the same objective. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: One Definition RuleA 5-minute orientation
- Pick up a classic book: The Art of WarThe most-reprinted book on the subject
- Read the landmark paper: Definition and Application of a Five-Parameter Characterization of One-Dimensional Cellular Automata Rule SpaceCited 40 times
- Go sideways: C++ classesA closely related topic
- Go sideways: Copy elisionA closely related topic
📖 Definitions
No dictionary entry for this exact phrase.
🏆 Landmark papers (most cited)
Definition and Application of a Five-Parameter Characterization of One-Dimensional Cellular Automata Rule Space
Bronchopulmonary Dysplasia: The Ongoing Search for One Definition to Rule Them All
Social construction of XAI: Do we need one definition to rule them all?
One Is in the Definition of All: The Renaissance Thomist Controversy Over a "Rule" for Names Said by Analogy
Learning: One definition to rule them all?
THE PRINCIPLE OF LEGAL DEFINITION AS ONE OF THE MAIN ASPECTS OF THE PRINCIPLE OF THE RULE OF LAW
📚 Books worth reading
The Art of War孙武 (Sun Tzu) · 1900
Laws, etcUnited States · 1789
The Law of SuccessNapoleon Hill · 1969
The Road to SerfdomFriedrich A. von Hayek · 1944
Behavior in public placesErving Goffman · 1963
EvidencePaul R. Rice · 1987
Definitions in political economyThomas Robert Malthus · 1827
A text book of geometrical drawingMinifie, William · 1849
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- C++ classes A class in C++ is a user-defined type or data structure declared with any of the keywords class, struct or union (the first two are collectively referred…
- Copy elision In C++ computer programming, copy elision refers to a compiler optimization technique that eliminates unnecessary copying of objects. The C++ language…
- Hooking In computer programming, hooking is a range of techniques used to alter or augment the behaviour of an operating system, applications, or other software…
- Namespace In computing, a namespace is a set of signs (names) that are used to identify and refer to objects of various kinds. A namespace ensures that all of a…
- C++11 C++11 is a version of a joint technical standard, ISO/IEC 14882, by the International Organization for Standardization (ISO) and International Electrotechnical…
- Typedef typedef is a reserved keyword in the programming languages C, C++, and Objective-C. It is used to create an additional name (alias) for another data type…
- Concepts (C++) Concepts in the C++ programming language are type constraints on templates (or generics). Concepts are named Boolean predicates on template parameters…
- Compatibility of C and C++ The C and C++ programming languages are closely related but have many significant differences. C++ began as a fork of an early, pre-standardized C, called…