15,892,005 members
Sign in
Sign in
Email
Password
Forgot your password?
Sign in with
home
articles
Browse Topics
>
Latest Articles
Top Articles
Posting/Update Guidelines
Article Help Forum
Submit an article or tip
Import GitHub Project
Import your Blog
quick answers
Q&A
Ask a Question
View Unanswered Questions
View All Questions
View C# questions
View C++ questions
View Javascript questions
View Visual Basic questions
View Python questions
discussions
forums
CodeProject.AI Server
All Message Boards...
Application Lifecycle
>
Running a Business
Sales / Marketing
Collaboration / Beta Testing
Work Issues
Design and Architecture
Artificial Intelligence
ASP.NET
JavaScript
Internet of Things
C / C++ / MFC
>
ATL / WTL / STL
Managed C++/CLI
C#
Free Tools
Objective-C and Swift
Database
Hardware & Devices
>
System Admin
Hosting and Servers
Java
Linux Programming
Python
.NET (Core and Framework)
Android
iOS
Mobile
WPF
Visual Basic
Web Development
Site Bugs / Suggestions
Spam and Abuse Watch
features
features
Competitions
News
The Insider Newsletter
The Daily Build Newsletter
Newsletter archive
Surveys
CodeProject Stuff
community
lounge
Who's Who
Most Valuable Professionals
The Lounge
The CodeProject Blog
Where I Am: Member Photos
The Insider News
The Weird & The Wonderful
help
?
What is 'CodeProject'?
General FAQ
Ask a Question
Bugs and Suggestions
Article Help Forum
About Us
Search within:
Articles
Quick Answers
Messages
Artificial Intelligence
Artificial Intelligence
Neural Networks
Machine Learning
Deep Learning
ML.Net
Big Data
Data Science
Tensorflow
ChatGPT
Internet of Things
Internet of Things
Arduino
Edge Device
Raspberry-Pi
Wearables
IoT Edge
Industrial IoT
DevOps
DevOps
Agile
Automation
Continuous Build
Continuous Delivery
Continuous Deployment
Continuous Integration
Deployment
Git
Installation
Integration Testing
Load Testing
Quality Assurance
TFS
Unit Testing
Testing
Containers
Containers
Docker
Kubernetes
Virtual Machine
High Performance Computing
High Performance Computing
GPU
Parallel Processing
Parallelization
Vectorization
Hosted Services
Hosted Services
AWS
Cordova
ExtJS
Google Cloud
Microservices
PhoneGap
Serverless
Storage
Web Hosting
WordPress
Azure
Security
Security
Blockchain
Cryptography
Encryption
Identity
Identity Server
Web Development
Web Development
Blazor
CSS3
Flask
HTML5
Kestrel
LESS
Nginx
Node.js
React
SCSS
Spring
Vue.js
ASP.NET
CSS
Apache
HTML
IIS
XHTML
Mobile Apps
Mobile Apps
Flutter
Ionic
iOS
Nativescript
React Native
Xamarin
Windows Mobile
Android
Desktop Programming
Desktop Programming
Cocoa
Electron
QT
Universal Windows Platform
X11
Windows Forms
ATL
MFC
Swing
Win32
WTL
WPF
XAML
System
Database Development
Database Development
Data Visualization
Elasticsearch
Lucene
MariaDB
MongoDB
NoSQL
PostgreSQL
Redis
MySQL
SQL Server
Productivity Apps and Services
Productivity Apps and Services
LibreOffice
OpenOffice
Sharepoint
Team Communication Tools
Biztalk
Microsoft Office
SAP
Game Development
Game Development
Doom
Kinect
Playstation 4
Playstation 5
Unity
Unreal
XBox
Multimedia
Multimedia
Audio
Image Processing
Video
Audio Video
DirectX
GDI
GDI+
OpenGL
General Programming
General Programming
Algorithms
Compression
Computational Geometry
Emulation
Exceptions
File
Internet
Localization
Memory Management
Optimization
Parser
Performance
Regular Expressions
Sorting
State Machines
Architecture
Design / Graphics
Printing
String
Threads
Usability
Programming Languages
Programming Languages
ASM
Bash
Basic
COBOL
Dart
Go
Haskell
Kotlin
Lua
Pascal
R
Razor
Rust
Scala
Swift
Typescript
Objective C
Visual Basic
VBScript
C++
C#
F#
FORTRAN
Java
Javascript
Perl
Python
Ruby
SQL
PHP
PowerShell
XML
Articles by John Bandela (Articles: 4, Technical Blogs: 9)
Articles: 4, Technical Blogs: 9
Articles
Technical Blogs
Tips and Tricks
Reference Articles
Projects
Average article rating: 4.74
Programming Languages
C++
C# style async/await in C++ - Part 1: Introduction and use with Boost.Asio
26 Apr 2013 Updated:
26 Apr 2013
Rating: 5.00/5 Votes: 4 Popularity: 3.01
Licence: CPOL Views: 26,791
Bookmarked: 18
Downloaded: 0
Please
Sign up or sign in
to vote.
C# style async/await in C++.
C# style async/await in C++ - Part 2: Using with Microsoft PPL/PPLX
1 May 2013 Updated:
1 May 2013
Rating: 4.41/5 Votes: 5 Popularity: 3.08
Licence: CPOL Views: 40,145
Bookmarked: 11
Downloaded: 0
Please
Sign up or sign in
to vote.
C# style async/await in C++.
C++11
LevelDB DLL for Windows - A New Approach to Exporting C++ Classes from a DLL
28 Mar 2013 Updated:
28 Mar 2013
Rating: 4.82/5 Votes: 6 Popularity: 3.75
Licence: CPOL Views: 34,972
Bookmarked: 12
Downloaded: 15
Please
Sign up or sign in
to vote.
Describes a build of leveldb for windows that works in both g++ and visual c++ using the same dll
A Workaround for Type Inference with Expression Templates and Proxies
15 Apr 2019 Updated:
12 Jun 2019
Rating: 0.00/5 Votes: 0 Popularity: 0.00
Licence: CPOL Views: 3,690
Bookmarked: 2
Downloaded: 0
Please
Sign up or sign in
to vote.
The problem brought to light by the article is that C++11 auto interacts badly with expression templates and proxies.
Average blogs rating: 4.58
All Topics
Digit Separators in C++ [Technical Blog]
11 Feb 2013 Updated:
11 Feb 2013
Rating: 0.00/5 Votes: 0 Popularity: 0.00
Licence: CPOL Views: 9,330
Bookmarked: 3
Downloaded: 0
Please
Sign up or sign in
to vote.
Lawrence Crowl's paper describes a proposal the C++ standard to add digit separators to C++. In this blog post, we will look at what we can do for this problem in C++ as it currently is.
A Workaround for Lambda ODR Violations [Technical Blog]
13 Jan 2016 Updated:
13 Jan 2016
Rating: 0.00/5 Votes: 0 Popularity: 0.00
Licence: CPOL Views: 5,221
Bookmarked: 1
Downloaded: 0
Please
Sign up or sign in
to vote.
A workaround for Lambda ODR violations
Programming Languages
C++
Emulating C++17 Structured Bindings in C++14 [Technical Blog]
2 Feb 2016 Updated:
2 Feb 2016
Rating: 4.00/5 Votes: 1 Popularity: 0.00
Licence: CPOL Views: 7,441
Bookmarked: 2
Downloaded: 0
Please
Sign up or sign in
to vote.
Emulating C++17 Structured Bindings in C++14
Emulating C++17 Structured Bindings in C++14 [Technical Blog]
15 Apr 2019 Updated:
15 Apr 2019
Rating: 0.00/5 Votes: 0 Popularity: 0.00
Licence: CPOL Views: 2,304
Bookmarked: 2
Downloaded: 0
Please
Sign up or sign in
to vote.
One of the inconveniences of returning multiple values from a function using tuples. While, it is very easy for a function to return multiple values, it is harder for the caller to use them. Here is an example from the write up.
Easy Binary Compatible Interfaces Across Compilers in C++ - Part 0 of n: Introduction and a Sneak Preview [Technical Blog]
30 Dec 2012 Updated:
9 Dec 2017
Rating: 4.11/5 Votes: 6 Popularity: 3.20
Licence: CPOL Views: 19,703
Bookmarked: 10
Downloaded: 0
Please
Sign up or sign in
to vote.
Easy Binary Compatible Interfaces Across Compilers in C++ - sneak preview
Another Alternative to Lambda Move Capture [Technical Blog]
31 Dec 2012 Updated:
31 Dec 2012
Rating: 5.00/5 Votes: 1 Popularity: 0.00
Licence: CPOL Views: 8,930
Bookmarked: 2
Downloaded: 0
Please
Sign up or sign in
to vote.
This post discusses another alternative to lambda move capture.
A Workaround for Type Inference with Expression Templates and Proxies [Technical Blog]
20 Dec 2013 Updated:
20 Dec 2013
Rating: 4.80/5 Votes: 2 Popularity: 1.44
Licence: CPOL Views: 7,070
Bookmarked: 0
Downloaded: 0
Please
Sign up or sign in
to vote.
Here is a workaround for type inference with expression templates and proxies
SQL
C++20 and SQL - A Thin, Typesafe SQL Wrapper in C++20 [Technical Blog]
25 May 2020 Updated:
25 May 2020
Rating: 5.00/5 Votes: 1 Popularity: 0.00
Licence: CPOL Views: 5,480
Bookmarked: 2
Downloaded: 0
Please
Sign up or sign in
to vote.
C++20 provides us with improved compile time features that can allow us to get a working SQL query into C++.
Web Development
HTML
A Workaround for Lambda ODR Violations [Technical Blog]
15 Apr 2019 Updated:
15 Apr 2019
Rating: 0.00/5 Votes: 0 Popularity: 0.00
Licence: CPOL Views: 2,750
Bookmarked: 0
Downloaded: 0
Please
Sign up or sign in
to vote.
As brought up in the a reddit post with lambdas in inline functions you can run into ODR violations and thus undefined behavior.
Average tips rating:
No tips have been posted.
Average reference rating:
No reference articles have been posted.
Average project rating:
No projects have been posted.
John Bandela
Software Developer
self employed
United States
I started programming in Basic in the 4th grade. In 8th grade, I convinced my parents to buy me Visual C++ 1.0. I discovered I really enjoyed C++, and have been programming in it since. I attended the University of Florida and majored in Computer Science graduating with honors with a 4.0 GPA. I then attending Medical School and obtained my Doctor of Medicine degree.
I have used my computer skills to help me in my medical practice. I also enjoy programming in C++ just for fun, trying to discover new ways of solving problems or applying C++ to new areas. My latest interest has been in creating a component system for C++ allowing components created with 1 compiler to be easily used by another compiler.