Meet up

Why Iterators Got It Wrong

Tuesday, 22nd August at CodeNode, London

This meetup was organised by C++ London in August 2017

Interested in C++ present and future? Want to improve your skills and knowledge - or just hang out with like-minded individuals? Don't miss this month's C++ London meetup!

C++ August Meetup

Interested in C++ present and future? Want to improve your skills and knowledge - or just hang out with like-minded individuals? Don't miss this month's C++ London meetup!

18:30 pre-session networking/ drinks and think-cell sponsored food

19:00 Phil Nash << "Hello World"

Brief introduction and raffle for a JetBrains license

19:10 Arno Schödl<< "Why Iterators Got It All Wrong — and what we should use instead"

FFIG a Foreign Function Interface Generator for C++

Want to learn about Foreign Function Interface? Join Jonathan Coe at this months C++ London to find out more!

It uses libclang and (lightly) annotated C++ to generate interfaces in Python, Ruby, Lua...

It's an open source project in early development, I'll show how it works, how it can be extended and how object lifetime management is handled.

Jonathan Coe

Jonathan is a mathematical developer using modern C++ and Python. He has worked in academia and the financial and energy industries. He's been a participant in the C++ standards committee since 2014.

Why Iterators Got It All Wrong — and what we should use instead

You understand iterators, right? How would you describe them? "Iterators are used to point into sequences of elements." Sounds good?

More recently, the concept of ranges has been introduced to mean anything that exposes iterators. In particular, ranges include range adaptors for lazily transforming or filtering sequences of elements, and they, too, have iterators. All good? Unfortunately, no. The iterator concept, which we have been using since the advent of C++, is fundamentally flawed. In particular, some iterators must behave differently depending on whether they are meant to point at an element or at a boundary between elements. So elements and boundaries are really two distinct concepts. In this talk, I will convince you that the problem is real and has practical implications, make a proposal on how to fix it and show how the solution not only fixes the problem but makes for clearer code and prevents mistakes.

Arno Schödl

Arno is one of think-cell’s co-founders and Technical Director. He is responsible for the design, architecture and development of all their software products. He oversees think-cell's R&D team, Quality Assurance and Customer Care. Before founding think-cell, Arno worked at Microsoft Research and McKinsey. Arno studied computer science and management and holds a Ph.D. from the Georgia Institute of Technology with a specialization in Computer Graphics

Thanks to our sponsors

Attending Members

Overview

Interested in C++ present and future? Want to improve your skills and knowledge - or just hang out with like-minded individuals? Don't miss this month's C++ London meetup!

C++ August Meetup

Interested in C++ present and future? Want to improve your skills and knowledge - or just hang out with like-minded individuals? Don't miss this month's C++ London meetup!

18:30 pre-session networking/ drinks and think-cell sponsored food

19:00 Phil Nash << "Hello World"

Brief introduction and raffle for a JetBrains license

19:10 Arno Schödl<< "Why Iterators Got It All Wrong — and what we should use instead"

FFIG a Foreign Function Interface Generator for C++

Want to learn about Foreign Function Interface? Join Jonathan Coe at this months C++ London to find out more!

It uses libclang and (lightly) annotated C++ to generate interfaces in Python, Ruby, Lua...

It's an open source project in early development, I'll show how it works, how it can be extended and how object lifetime management is handled.

Jonathan Coe

Jonathan is a mathematical developer using modern C++ and Python. He has worked in academia and the financial and energy industries. He's been a participant in the C++ standards committee since 2014.

Why Iterators Got It All Wrong — and what we should use instead

You understand iterators, right? How would you describe them? "Iterators are used to point into sequences of elements." Sounds good?

More recently, the concept of ranges has been introduced to mean anything that exposes iterators. In particular, ranges include range adaptors for lazily transforming or filtering sequences of elements, and they, too, have iterators. All good? Unfortunately, no. The iterator concept, which we have been using since the advent of C++, is fundamentally flawed. In particular, some iterators must behave differently depending on whether they are meant to point at an element or at a boundary between elements. So elements and boundaries are really two distinct concepts. In this talk, I will convince you that the problem is real and has practical implications, make a proposal on how to fix it and show how the solution not only fixes the problem but makes for clearer code and prevents mistakes.

Arno Schödl

Arno is one of think-cell’s co-founders and Technical Director. He is responsible for the design, architecture and development of all their software products. He oversees think-cell's R&D team, Quality Assurance and Customer Care. Before founding think-cell, Arno worked at Microsoft Research and McKinsey. Arno studied computer science and management and holds a Ph.D. from the Georgia Institute of Technology with a specialization in Computer Graphics

Thanks to our sponsors

Who's coming?

Attending Members