Andrew Tomazos - Home Page

News

2024-11-27: I've written a statement regarding recent events here: First-hand Account of "The Undefined Behaviour Question" Incident

D2288 C++ Designated Arguments

I've been working in my spare time on designing and developing a C++ language extension for designated arguments (aka keyword arguments, named parameters) for ISO WG21 (the "C++ standards committee"). Here is an introductory presentation:

The full paper is here: D2288 C++ Designated Arguments

C++ Proposals

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup Disposition
P0187R1 Proposal/Wording for Bit-field Default Member Initializer Syntax Andrew Tomazos 2016-06-28 2016-10 P0187R0 Evolution adopted
P0373R0 Proposal of File Literals Andrew Tomazos 2016-05-21 2016-06 Evolution rejected
P0212R1 Wording for [[maybe_unused]] attribute Andrew Tomazos 2016-03-01 2016-03 P0212R0 Core adopted
P0189R1 Wording for [[nodiscard]] attribute Andrew Tomazos 2016-02-29 2016-03 P0189R0 Core adopted
P0188R1 Wording for [[fallthrough]] attribute Andrew Tomazos 2016-02-29 2016-03 P0188R0 Core adopted
P0268R0 up-to expression Mike Spertus, Andrew Tomazos 2016-02-12 2016-02 Evolution rejected
P0268R0 up-to expression Mike Spertus, Andrew Tomazos 2016-02-12 2016-02 Evolution rejected
P0259R0 fixed_string: a compile-time string Michael Price, Andrew Tomazos 2016-02-12 2016-02 P0068R0 Library Evolution dropped
P0212R0 Wording of [[maybe_unused]] attribute Andrew Tomazos 2016-01-31 2016-02 P0068R0 Evolution revised
P0189R0 Wording of [[nodiscard]] attribute Andrew Tomazos 2016-01-03 2016-02 P0068R0 Evolution revised
P0188R0 Wording of [[fallthrough]] attribute Andrew Tomazos 2016-01-03 2016-02 P0068R0 Evolution revised
P0187R0 Proposal of Bitfield Default Member Initializers Andrew Tomazos 2015-11-20 2016-02 Evolution accepted
P0151R0 Proposal of Multi-Declarators Andrew Tomazos 2015-10-21 2015-11 Evolution rejected
P0068R0 Proposal of [[unused]], [[nodiscard]] and [[fallthrough]] attributes Andrew Tomazos 2015-09-03 2015-09 Evolution revised
N4428 Type Property Queries (rev 4) Andrew Tomazos, Christian Kaeser 2015-04-08 2015-04 N4113 Reflection rejected
N4239 Defaulted Comparison Using Reflection A. Tomazos, M. Spertus 2014-10-12 2014-10 Reflection, Evolution
N4230 Nested namespace definition (revision 2) R. Kawulak, A. Tomazos 2014-10-10 2014-10 N4026 Evolution adopted
N4121 Compile-Time String: std::string_literal<n> Andrew Tomazos 2014-07-04 2014-07 Evolution, Library Evolution TBD
N4116 Nested Namespace Definition (rev 1) A. Tomazos, R. Kawulak 2014-07-03 2014-07 N4026 Evolution revised
N4113 Reflection Type Traits For Classes, Unions and Enumerations (rev 3) A. Tomazos, C. Kaeser 2014-07-02 2014-07 N4027 Reflection revised
N4027 Type Member Property Queries (rev 2) A. Tomazos, C. Kaeser 2014-05-22 2014-05 N3815 Reflection revised
N4026 Nested namespace definition Robert Kawulak (Tomazos Presented) 2014-05-23 2014-05 Evolution revised
N3955 Group Member Specifiers Andrew Tomazos 2014-02-25 2014-03 Evolution rejected
N3879 Explicit Flow Control: break label, goto case and explicit switch Andrew Tomazos 2014-01-16 2014-01 Evolution rejected
N3815 Enumerator List Property Queries A. Tomazos, C. Käser 2013-10-03 2013-10 Library Evolution revised

Random Stuff

How much C++ code is there? How many C++ programmers?

Analysis of C/C++ Source Character Encoding

Andrew's C/C++ Token Count Dataset 2019 (ACTCD19)

Andrew's C/C++ Token Count Dataset 2016 (ACTCD16) - a dataset of 4.6 billion C/C++ tokens.

C++ Grandmaster Certification - a C++ course

Folderscope 1.0 - a Windows file management utility. source

Tomazos Binary Tree Traverse simulatenously walks a binary tree in preorder, inorder and postorder in O(n) time while using only O(1) space. In fact the iterator uses only 2 bits of space and a pointer to the current node.

angloname<T> is a paper and demo entitled: Existing C++ Compile-Time Reflection Demo Of Built-In Type Introspection Using Compile-Time Strings, Variable Templates and Type Deduction

QtDirectX11WidgetDemo is a demo of using a DirectX Direct3D pipeline and shader to display 3d graphics in a QWidget.

Math Homework