![](https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)
![](https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)
![](https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)
Deconstructing function pointers in a C++ template, the calling convention conundrum
![](https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)
Deconstructing function pointers in a C++ template, vexing variadics
![](https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)
Deconstructing function pointers in a C++ template, the noexcept complication
![](https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)
Deconstructing function pointers in a C++ template
![](https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)
Cancelling a Windows Runtime asynchronous operation, part 8: C++/WinRT, revised
![](https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)
Cancelling a Windows Runtime asynchronous operation, part 7: WRL-generated asynchronous operations
![](https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)
Cancelling a Windows Runtime asynchronous operation, part 6: C++/WinRT-generated asynchronous operations
![](https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)
Cancelling a Windows Runtime asynchronous operation, part 5: C++/WinRT
![](https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)