# Presentation: 855384

## The Next C++ Standard (C++0x):Fermilab’s Contributions

- Walter E. Brown
*Computing Division*
*Fermi National Accelerator Laboratory*

## Our goals

- To facilitate C++ programming:
- In Fermilab’s HEP problem domain, and
- In the general scientific user community in which Fermilab plays a significant part
- To provide programming features that canbe used safely and efficiently:
- In both the C++ core language and the accompanying standard library ...
- So that we and our colleagues can focus on coding physics applications

## Samples of our nearly two dozen papers

- _[N1360](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2002/n1360.htm)__:__	_*const*-correctness [in] input/output ...	library
- _[N1451](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1451.html)__:__	_... Template Aliasing	core
- _[N1542](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1542.pdf)__:__	_... Mathematical *Special Functions* ...	library
- _[N1611](http://www-cdserver.fnal.gov/cd_public/cep/aps/sld/talks/N1611.pdf)__:__	_*I**mplicitly-Callable Functions* ...	core
- _[N1665](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1665.pdf)__:_	... Domain Errors ...	library
- _[N1737](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1737.pdf)__:__	_... Multi-declarator *auto* Declarations	core
- _[N1785](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1785.pdf)__:__	_... Object Templates ...	core
- _[N1891](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1891.pdf)__:__	_... Opaque Typedefs ...	core
- _[N1913](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1913.pdf)__:__	_... Improv[ing] *const_iterator* Use ...	library
- _[N1664](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1664.pdf)__:__	_... Optimization Opportunities ...	core
- _[N1775](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1775.pdf)__:_	... Reflection ...	both

## Random number generation (presented separately)

- _[N1452](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1452.html)__:__	__[A]n Extensible Random Number Facility ..._
- N1547:	... Initialization of Random Engines
- N1588:	On Random-Number Distributions ...
- N1914:	... Add[ing] Random-Number Distributions ...
- N1932:	Random Number Generation ...	Comprehensive Proposal
- N1933:	Improvements ... for Random Number	Generation

## Accepted proposals

- Mathematical special functions
- Voted into TR1 (“Technical Report on Library Extensions”)
- Also voted by the C Standardization Committee into a C TR
- Random number generation
- Voted into TR1
- Also voted into C++0x (see also next page)
*const*-correctness in input/output
- Voted directly into C++03; already published
- Multi-declarator *auto* Declarations
- Merged with another proposal voted into C++0x
- Improv[ing] *const_iterator* Use
- Voted directly into C++0x

## Proposals still in progress

- Random number generation
- Being revised per FNAL’s experience; favorably received
- Template aliasing
- Merged with another proposal; final wording due by next meeting (Oct. 2006)
- Opaque typedefs
- Intense interest to have final design and wording by the next meeting
- Optimization opportunities
- An author of a similar proposal has asked to co-author a joint proposal on this topic for review at the next meeting

## Fermilab’s Contributions to C++0x:The Next C++ Standard

- Walter E. Brown
*Computing Division*
*Fermi National Accelerator Laboratory*