Tiny Metaprogramming Library -- Eric Niebler

eric-niebler-toronto.PNGWe like to link to articles at all levels. This one's near the top of the scale, for those looking for a real challenge:

Tiny Metaprogramming Library

by Eric Niebler

As the intro says [emphasis ours]:

(Difficult-to-grok metaprogramming below. Not for the faint of heart.)

From the rest of the introduction:

At the recent Urbana-Champaign meeting of the C++ Standardization Committee, Bill Seymour presented his paper N4115: Searching for Types in Parameter Packs which, as its name suggests, describes a library facility for, uh, searching for a type in a parameter pack, among other things. It suggests a template called packer to hold a parameter pack:

// A class template that just holds a parameter pack:
template <class... T> struct packer { };

Many of you are probably already familiar with such a facility, but under a different name:

// A class template that is just a list of types:
template <class... T> struct typelist { };

It became clear in the discussion about N4115 that C++ needs a standard typelist template and some utilities for manipulating them. But what utilities, exactly? ...

Visual Studio 2015 Preview announced, includes Clang/LLVM support for Android, iOS

This morning, Microsoft announced Visual Studio 2015 Preview. It contains continued C++11/14 conformance improvements in the traditional Visual C++ compiler, and also adds direct support for the Clang/LLVM compiler toolchain to build C++ code for Android now and iOS in the near future.

Cross-Platform Mobile Development with Visual C++

by Ankit Asthana

From the announcement:

Modern application customers are demanding applications be available for multiple device platforms (such as Windows, Android and iOS).... C++ is unique as it provides the ability to write efficient, fast and feature rich cross-platform mobile code once which can then be shared across these different device platforms.

Visual Studio 2015 Preview introduces support for developers to be able to build cross-platform mobile native (C/C++) binaries targeting Windows platforms (through the Visual C++ toolchain C1xx/C2) and the Android platform (through Clang/llvm)...

What makes Clang so special? -- CoderGears

Today on CoderGears:

What makes Clang so special?

by CoderGears Team

From the article:

It’s proven that Clang is a mature compiler for C and C++ as [are the] GCC and Microsoft compilers, but what makes it special is the fact that it’s not just a compiler. It’s also an infrastructure to build tools. Thanks to its library based architecture which makes the reuse and integration of functionality provided more flexible and easier to integrate into other projects...

N4257, N4273, N4282: New papers adopted for Library Fundamentals 2 TS

Note: The following new papers (among other already-posted ones) were approved on Saturday at the end of last week's ISO C++ meeting for the Library Fundamentals "2" Technical Specification

New WG21 papers are available. If you are not a committee member, please use the comments section below or the std-proposals forum for public discussion.

N4257: Delimited iterators (Mike Spertus, Nathan Wilson)

N4273: Uniform Container Erasure (Stephan T. Lavavej)

N4282: The World’s Dumbest Smart Pointer (Walter E. Brown)

N4270, N4288: New papers adopted for Library Fundamentals TS

Note: The following new papers (among other already-posted ones) were approved on Saturday at the end of last week's ISO C++ meeting for the Library Fundamentals Technical Specification

New WG21 papers are available. If you are not a committee member, please use the comments section below or the std-proposals forum for public discussion.

N4270: Collected Edits to the Library Fundamentals TS (Alisdair Meredith)

N4288: Strike string_view::clear from the Library Fundamentals TS (Alisdair Meredith)

N4275, N4276: New papers adopted for Parallelism TS

Note: The following new papers (among other already-posted ones) were approved on Saturday at the end of last week's ISO C++ meeting for the Parallelism Technical Specification

New WG21 papers are available. If you are not a committee member, please use the comments section below or the std-proposals forum for public discussion.

N4275: Response to National Body comments for C++ Extensions for Parallelism (Hans-J. Boehm)

N4276: Transform Reduce, an Additional Algorithm for C++ Extensions for Parallelism(Jared Hoberock)

New standard library papers adopted for C++17

Note: The following new standard library papers (among other already-posted ones) were approved on Saturday at the end of last week's ISO C++ meeting for the C++ working paper

New WG21 papers are available. If you are not a committee member, please use the comments section below or the std-proposals forum for public discussion.

N4258: Cleaning-up noexcept in the Library (Nicolai Josuttis)

N4277: TriviallyCopyable reference_wrapper (Agustín Bergé)

N4279: Improved insertion interface for unique-key maps (Thomas Köppe)

N4280: Non-member size() and more (Riccardo Marcangelo)

N4284: Contiguous Iterators (Jens Maurer)

New core language papers adopted for C++17

Note: The following new core language papers (among other already-posted ones) were approved on Saturday at the end of last week's ISO C++ meeting for the C++ working paper

New WG21 papers are available. If you are not a committee member, please use the comments section below or the std-proposals forum for public discussion.

N4259: Wording for std::uncaught_exceptions (Herb Sutter)

N4261: Proposed resolution for Core Issue 330: Qualification conversions and pointers to arrays of pointers (Jens Maurer)

N4262: Wording for Forwarding References (Herb Sutter, Bjarne Stroustrup, Gabriel Dos Reis)

N4266: Attributes for namespaces and enumerators (Richard Smith)

N4267: Adding u8 character literals (Richard Smith)

N4268: Allow constant evaluation for all non-type template arguments (Richard Smith)

N4285: Cleanup for exception-specification and throw-expression (Jens Maurer)

N4295: Folding expressions (Andrew Sutton, Richard Smith)

N4265, N4272: Transactional Memory TS wording -- Michael Wong, Jens Maurer, et al.

Note: The following papers were approved on Saturday at the end of last week's ISO C++ meeting for the Transactional Memory Technical Specification.

New WG21 papers are available. If you are not a committee member, please use the comments section below or the std-proposals forum for public discussion.

N4272: Working Draft, Technical Specification for C++ Extensions for Transactional Memory (Michael Wong)

N4265: Transactional Memory Support for C++: Wording (revision 3) (Jens Maurer, et al.)