2015-11-26
Using Variadic Templates cleanly: http://florianjw.de/en/variadic_templates.html
2015-11-26

2015-11-25
C++11 Library Design: https://www.youtube.com/watch?v=zgOF4NrQllo
2015-11-24
Emscripten is an LLVM-based project that compiles C and C++ into highly-optimizable JavaScript in asm.js format. This lets you run C and C++ on the web at near-native speed, without plugins: http://kripken.github.io/emscripten-site
2015-11-23
JTC1/SC22/WG21 - Papers 2015: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/#mailing2015-11
2015-11-22
Kona Standards Meeting Trip Report: https://isocpp.org/blog/2015/11/kona-standards-meeting-trip-report
2015-11-22
Monads, who's afraid of Monads (and C++)? http://ib-krajewski.blogspot.co.uk/2015/11/monads-whos-afraid-of-monads-and-c.html
2015-11-21
Intel's crazy fast Optane memory, storage products to hit enthusiast PCs first: http://www.cio.com/article/3006925/intels-crazy-fast-optane-memory-storage-products-to-hit-enthusiast-pcs-first.html
2015-11-21
Which language has the brightest future in replacement of C between D, Go and Rust? And Why? https://www.quora.com/Which-language-has-the-brightest-future-in-replacement-of-C-between-D-Go-and-Rust-And-Why/answer/Andrei-Alexandrescu
2015-11-20
2015 LLVM Developers' Meeting: https://www.youtube.com/playlist?list=PL_R5A0lGi1AA4Lv2bBFSwhgDaHvvpVU21
2015-11-19
TensorFlow is an Open Source Software Library for Machine Intelligence: http://www.tensorflow.org
2015-11-18
Reflection in C++14: http://blog.simon-ninon.fr/reflection-in-c-plus-plus-14/
2015-11-17
Boost Library Official Maintainer Program: http://beta.boost.org/community/official_library_maintainer_program.html
2015-11-14
CFront releases: http://www.softwarepreservation.org/projects/c_plus_plus
2015-11-12
DevDocs - multiple API documentations: http://devdocs.io
2015-11-11
Andrei's Tips on Giving Technical Talks: http://erdani.com/index.php/articles/tech-talk-tips
2015-11-08
Facebook’s code quality problem: http://www.darkcoding.net/software/facebooks-code-quality-problem
2015-11-05
Xcode clang versions: https://gist.github.com/yamaya/2924292
2015-11-03
Vim-fork focused on extensibility and agility: https://github.com/neovim/neovim
2015-11-02
Clang format configurator: http://zed0.co.uk/clang-format-configurator/
2015-10-30
C++ Requests: Curl for People: https://github.com/whoshuu/cpr
2015-10-28
Rust Design Patterns: https://github.com/nrc/patterns/blob/master/README.md
2015-10-24
Announcing Visual C++ Build Tools 2015 – standalone C++ tools for build environments: http://blogs.msdn.com/b/vcblog/archive/2015/11/02/announcing-visual-c-build-tools-2015-standalone-c-tools-for-build-environments.aspx
2015-10-23
An introduction to C++'s SFINAE concept: compile-time introspection of a class member: http://jguegant.github.io/blogs/tech/sfinae-introduction.html
2015-10-21
Lambda hackery: Overloading, SFINAE and copyrights: https://ngathanasiou.wordpress.com/2015/10/20/lambda-hackery-overloading-sfinae-and-copyrights
2015-10-20
Which Clang Warning Is Generating This Message: http://fuckingclangwarnings.com/
2015-10-19
The little book about OS development: https://littleosbook.github.io
2015-10-18
Introducing Concepts: http://accu.org/index.php/journals/2157
2015-10-17
Compile-time counters, revisited: http://www.elbeno.com/blog/?p=1284
2015-10-14
30 years of C++: http://cpp-lang.io/30-years-of-cpp-bjarne-stroustrup
2015-10-09
Boost Release Manager Checklists: https://svn.boost.org/trac/boost/wiki/ReleasePractices/ManagerCheckList
2015-10-08
Some learnings from Mercurial:
        hg strip tip
        hd push --new-branch
        hg branch name
        hg commit -S -m "commit"
        hg update --clean
        hg update branch
        hg branches
        hg strip 'roots(outgoing())'
        hg log -r 23 -p
        hg diff -r branch1:branch2
        hg diff -S -r default -X dir
        hg revert -r default file
    

2015-10-06
Boosting Developer Productivity with Clang: http://events.linuxfoundation.org/sites/events/files/slides/linuxcon-europe-2015.pdf
2015-10-05
2015-09 pre-Kona mailing available: https://isocpp.org/blog/2015/10/2015-09-pre-kona-mailing-available
2015-10-04
CppCon 2015:
  1. perf stat ./bench
  2.  
  3. perf record ./bench
  4. perf report
  5.  
  6. -fno-omit-frame-pointer
  7. perf record -g ./bench
  8. perf report -g
  9.  
  10. -fno-omit-frame-pointer
  11. perf record -g ./bench
  12. perf report -g 'graph,0.5,caller'
  13.  
  14. static void escape(void *p) {
  15. asm volatile("" : : "g"(p) : "memory");
  16. }
  17.  
  18. static void clobber() {
  19. asm volatile("" : : : "memory");
  20. }
  21.  
  22. std::vector<int> v;
  23. escape(&v);
  24. (void)v;

2015-10-01
C++ Core Guidelines: https://github.com/isocpp/CppCoreGuidelines
2015-09-26
Rejuvenating the Microsoft C/C++ Compiler: http://blogs.msdn.com/b/vcblog/archive/2015/09/25/rejuvenating-the-microsoft-c-c-compiler.aspx
2015-09-25
Ten things we know to be true: http://www.google.com/about/company/philosophy
2015-09-22
The One Method I’ve Used to Eliminate Bad Tech Hires: https://medium.com/swlh/the-one-method-to-eliminate-bad-tech-hires-630d539b2e1d
2015-09-20
C++ Reflection: https://github.com/AustinBrunkhorst/CPP-Reflection
2015-09-19
Move semantics and rvalue references in C++11: http://www.cprogramming.com/c++11/rvalue-references-and-move-semantics-in-c++11.html
2015-09-17
C++ Core Guidelines: https://github.com/isocpp/CppCoreGuidelines
2015-09-17
Google Is 2 Billion Lines of Code—And It’s All in One Place: http://www.wired.com/2015/09/google-2-billion-lines-codeand-one-place
2015-09-09
Should you be using something instead of what you should use instead?
http://scottmeyers.blogspot.de/2015/09/should-you-be-using-something-instead.html
2015-09-07
Unix History Repository: https://github.com/dspinellis/unix-history-repo
2015-09-06
Python type hints: https://www.python.org/dev/peps/pep-0484
2015-09-05
Cross-platform package manager for C++: https://github.com/ruslo/hunter
2015-09-03
Why Roost (free eBook): http://www.oreilly.com/programming/free/files/why-rust.pdf
2015-09-02
Top 40 Core Java Interview Questions: http://java67.blogspot.sg/2015/03/top-40-core-java-interview-questions-answers-telephonic-round.html
2015-09-01
Design patterns: https://sourcemaking.com/design_patterns
2015-08-31
Codecov. Code coverage done right: https://codecov.io/
2015-08-29
Writing a Linux Kernel Module: http://derekmolloy.ie/kernel-gpio-programming-buttons-and-leds
2015-08-28
A tour of Go: https://tour.golang.org/list
2015-08-27
Harder to C++: Monads for Mortals: http://thebytekitchen.com/2014/10/22/harder-to-c-monads-for-mortals-1/
2015-08-26
Unity Comes to Linux: http://blogs.unity3d.com/2015/08/26/unity-comes-to-linux-experimental-build-now-available
2015-08-25
The Technical Interview Cheat Sheet: https://gist.github.com/TSiege/cbb0507082bb18ff7e4b
2015-08-24
Type Driven Wire Protocols with Boost Fusion: https://rodgert.github.io/page2
2015-08-23
Haskell tutorial for C programmers: https://wiki.haskell.org/Haskell_Tutorial_for_C_Programmers
2015-08-22
How to implement a compile-time meta-container in C++: http://b.atch.se/posts/constexpr-meta-container/
2015-08-21
.Net Native: http://blogs.windows.com/buildingapps/2015/08/20/net-native-what-it-means-for-universal-windows-platform-uwp-developers
2015-08-20
Lang Next 2014: https://channel9.msdn.com/events/lang-next/lang-next-2014
2015-08-16
Intel just open sourced Stephen Hawking’s speech system:
http://blogs.msdn.com/b/cdndevs/archive/2015/08/14/intel-just-open-sourced-stephen-hawking-s-speech-system-and-it-s-a-net-4-5-winforms-app.aspx
2015-08-15
Version history of VC++, MFC and ATL: http://mariusbancila.ro/blog/2015/08/12/version-history-of-vc-mfc-and-atl/
2015-08-14
“New” Value Terminology: http://stroustrup.com/terminology.pdf
2015-08-13
List of languages that compile to JS: https://github.com/jashkenas/coffeescript/wiki/list-of-languages-that-compile-to-JS
2015-08-12
Comparing Workflows (git): https://www.atlassian.com/git/tutorials/comparing-workflows
2015-08-11
Non Proposal for Destructive Move: https://dbgr.cc/l/cpp11
2015-08-10
Debug and Run C++11 Code Online: https://dbgr.cc/l/cpp11
2015-08-06
Awesome IT lists: https://github.com/sindresorhus/awesome
2015-08-05
After 15 years of active developement, does the Boost C++ library meet its original vision?
http://www.codergears.com/Blog/?p=1878
2015-08-04
Trip Report: C++ Standards Meeting in Lenexa, May 2015: https://botondballo.wordpress.com/2015/06/05/trip-report-c-standards-meeting-in-lenexa-may-2015/
2015-08-03
List of online C++ compilers: http://6uold.blogspot.co.uk/2015/06/list-of-online-c-compilers.html
2015-08-02
C++11 Metaprogramming Applied to Software Obfuscation: https://www.youtube.com/watch?v=Z-QYa6dSc-o
2015-08-01
GoingNative 40: Updated STL in VS 2015 (feat. STL): https://channel9.msdn.com/Shows/C9-GoingNative/GoingNative-40-Updated-STL-in-VS-2015-feat-STL
2015-07-30
Switching Eds: Face swapping with Python, dlib, and OpenCV:
http://matthewearl.github.io/2015/07/28/switching-eds-with-python
2015-07-29
Modern C++ for the Windows Runtime: http://moderncpp.com/2015/07/29/available-on-github
2015-07.28
std::shared_ptr's secret constructor: https://www.justsoftwaresolutions.co.uk/cplusplus/shared-ptr-secret-constructor.html
2015-07-26
Welcome to the Visual Studio MI Debug Engine: https://github.com/Microsoft/MIEngine
2015-07-22
Monads in JavaScript: https://curiosity-driven.org/monads-in-javascript
2015-07-21
C/C++ Coding Best Practices Repository: http://codergears.com/qacenter/index.php
2015-07-20
Visual Studio 2015 RTM Now Available: http://blogs.msdn.com/b/vcblog/archive/2015/07/20/visual-studio-2015-rtm-now-available.aspx
2015-07-19
RVO V.S. std::move: https://www.ibm.com/developerworks/community/blogs/5894415f-be62-4bc0-81c5-3956e82276f3/entry/RVO_V_S_std_move?lang=en
2015-07-17
Programmatic access to the call stack in C++: http://eli.thegreenplace.net/2015/programmatic-access-to-the-call-stack-in-c
2015-07-18
Translating Haskell to C++ metaprogramming:
http://www.vandenoever.info/blog/2015/07/12/translating-haskell-to-c++.html
2015-07-15
D4128: Ranges for the Standard Library: Revision 1:
https://ericniebler.github.io/std/wg21/D4128.html
2015-07-12
Static if resurrected: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4461.html
2015-07-08
Open Source Physics Engines: http://www.tapirgames.com/blog/open-source-physics-engines
2015-07-05
docopt.cpp: A C++11 Port: https://github.com/docopt/docopt.cpp
2015-07-01
C++ Concepts TS could be voted for publication on July 20:
https://botondballo.wordpress.com/2015/07/01/c-concepts-ts-could-be-voted-for-publication-on-july-20/
2015-07-01
A Conclusion to Accelerating Your Build with Clang: http://blogs.s-osg.org/a-conclusion-to-accelerating-your-build-with-clang/
2015-06-25
A Conclusion to Accelerating Your Build with Clang: http://blogs.s-osg.org/a-conclusion-to-accelerating-your-build-with-clang/
2015-06-18
Google, Microsoft, Mozilla And Others Team Up To Launch WebAssembly, A New Binary Format For The Web:
http://techcrunch.com/2015/06/17/google-microsoft-mozilla-and-others-team-up-to-launch-webassembly-a-new-binary-format-for-the-web/?ncid=rss&utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Techcrunch+%28TechCrunch%29
2015-06-15
CppMem: Interactive C/C++ memory model: http://svr-pes20-cppmem.cl.cam.ac.uk/cppmem
2015-06-12
Will It Optimize?
2015-06-10
MapReduce C++ Library: https://github.com/cdmh/mapreduce
2015-06-08
Meeting 2015 schedule: http://meetingcpp.com/index.php/schedule15.html
2015-06-02
C++ mailing 2015-05: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/#mailing2015-05
2015-06-01
GoingNative 38: The future of C++17:
http://channel9.msdn.com/Shows/C9-GoingNative/GoingNative-38-The-future-of-C17-Updates-from-Lenexa
2015-05-30
Simple C++11 metaprogramming: http://pdimov.com/cpp2/simple_cxx11_metaprogramming.html
2015-05-27
API/ABI changes analysis for C/C++ Libraries: http://upstream-tracker.org
2015-05-26
C++17 Fold Expressions: http://baptiste-wicht.com/posts/2015/05/cpp17-fold-expressions.html
2015-05-25
C++11 Tutorial: Introducing the Move Constructor and the Move Assignment Operator:
http://blog.smartbear.com/c-plus-plus/c11-tutorial-introducing-the-move-constructor-and-the-move-assignment-operator
2015-05-24
Silicon Valley's Dirty Little Secret:
2015-05-23
STL Concepts and Ranges: https://www.youtube.com/watch?v=8yV2ONeWXyI
2015-05-22
TDD Anti-Patterns: http://blog.james-carr.org/2006/11/03/tdd-anti-patterns
2015-05-21
Zapcc: a faster C++ compiler: http://www.zapcc.com/
2015-05-20
7 Mistakes You’re Making In Your Programming Career:
http://simpleprogrammer.com/2015/05/18/7-mistakes-youre-making-in-your-programming-career
2015-05-18
TIOBE Index for May 2015 (C++ on the rise): http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
2015-05-15
C++Now 2015 Presentation: https://github.com/boostcon/cppnow_presentations_2015
2015-05-12
Best Practice For C++ 11/14 Libraries:
2015-05-09
Vojta Jina - Dependency Injection - NG-Conf: https://www.youtube.com/watch?v=_OGGsf1ZXMs
2015-05-08
Implementing a Virtual Machine in C: http://blog.felixangell.com/virtual-machine-in-c
2015-05-07
Five programming problems every Software Engineer should be able to solve in less than 1 hour:
https://blog.svpino.com/2015/05/07/five-programming-problems-every-software-engineer-should-be-able-to-solve-in-less-than-1-hour
2015-04-25
FASTBuild is a high performance, open-source build system: http://www.fastbuild.org/docs/home.html
2015-04-15
History of Bjarne Stroustrup: http://www.computerhistory.org/collections/oralhistories/video/30
2015-04-15
C and C++ Dependency Manager with CMake on steroids: https://www.biicode.com
2015-04-12
Anatomy of a Program in Memory: http://duartes.org/gustavo/blog/post/anatomy-of-a-program-in-memory
2015-04-08
Announcing Git Large File Storage (LFS): https://github.com/blog/1986-announcing-git-large-file-storage-lfs
2015-04-02
Semantic Versioning 2.0.0 http://semver.org/
2015-03-25
CppNow 2015 program is online: http://cppnow2015.sched.org
2015-03-25
Bazel, from Google, is a build tool that builds code quickly and reliably:
http://bazel.io
2015-03-24
Static Code Analysis: http://www.viva64.com/en/a/0087
2015-03-22
A curated list of awesome C/C++ frameworks, libraries, resources, and shiny thing:
https://github.com/fffaraz/awesome-cpp
2015-03-21
The Terrible Technical Interview / On Secretly Terrible Engineers:

2015-03-20
Top 5 Android Testing Frameworks: http://testdroid.com/tech/top-5-android-testing-frameworks-with-examples
2015-03-19
Look, No Mocks! Functional TDD with F#: http://www.infoq.com/presentations/mock-fsharp-tdd
2015-03-17
Interview with Scott Meyers at Yandex:
http://www.reddit.com/r/cpp/comments/2yyfda/interview_with_scott_meyers_at_yandex
2015-03-15
CrystaX NDK (Replacement for Google's Android NDK): https://www.crystax.net/en/android/ndk
2015-03-12
Google to close Google Code open source project hosting:
http://arstechnica.com/information-technology/2015/03/google-to-close-google-code-open-source-project-hosting
2015-03-12
Google to close Google Code open source project hosting:
http://arstechnica.com/information-technology/2015/03/google-to-close-google-code-open-source-project-hosting
2015-03-03
Unreal Engine is free / Source 2 engine is free / Unity 3D 5 is out:
2015-03-03
Unreal Engine is free / Source 2 engine is free / Unity 3D 5 is out:
2015-03-02
Git Reference:
2015-02-25
ACCU: How to Write an Article: http://accu.org/index.php/journals/2061
2015-02-18
List of Free Programming Books: http://resrc.io/list/10/list-of-free-programming-books
2015-02-15
GitHub star ranking for users, organizations and repositories: http://githubranking.com
2015-02-11
Writing Your Own Toy Compiler Using Flex, Bison and LLVM:
http://gnuu.org/2009/09/18/writing-your-own-toy-compiler/all/1
2015-02-05
What Every Programmer Should Know About Compiler Optimizations: https://msdn.microsoft.com/en-us/magazine/dn904673.aspx
2015-02-04
.NET CoreCLR is now Open Source: https://github.com/dotnet/coreclr
2015-02-02
Online compilers for many languages:
2015-01-30
"The Best Programming Advice I Ever Got":
http://www.informit.com/promotions/experts-in-programming-share-their-knowledge-with-the-138930
2015-01-29
Kythe: a new approach to making developer tools:
http://google-opensource.blogspot.co.uk/2015/01/kythe-new-approach-to-making-developer.html
2015-01-26
10 ways to not shoot yourself in the foot using C++11: http://vitiy.info/ten-ways-to-not-shoot-yourself-in-the-foot-using-cpp11
2015-01-22
Learning Steps for C++ Developer:
http://www.foundbit.com/en/resources/languages/cpp/articles/learning-steps-cpp.html
2015-01-18
Industry, academia should be in sync, says C++ founder:
http://timesofindia.indiatimes.com/business/india-business/Industry-academia-should-be-in-sync-says-C-founder/articleshow/45926993.cms
2015-01-15
Compiling GCC 5.0 from the source code:
  1. wget ftp://ftp.mirrorservice.org/sites/sourceware.org/pub/gcc/snapshots/5-20150111/gcc-5-20150111.tar.bz2
  2. tar xvjf gcc-5-20150111.tar.bz2
  3. cd gcc-5-20150111
  4. mkdir build && cd build && ../configure --enable-languages=c++ --enable-lto --enable-checking=release
  5. make -j4
  6. sudo make install

2015-01-14
ISO/IEC 14882:2015 Information technology -- Programming languages -- C++:
http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=64029
2015-01-13
Pruning Error Messages From C++ Template Code - Roland Bock @ Meeting C++ 2014:
https://www.youtube.com/watch?v=afGv7A9gvmc
2015-01-12
[Boost.DI/C++14] - Modern C++ Dependency Injection Library: https://github.com/krzysztof-jusiak/di
2015-01-11
Scott Meyers - Nine New Videos: Three Legit, Six Bootleg:
http://www.aristeia.com/videos.html
2015-01-09
More C++ idioms: https://en.wikibooks.org/wiki/More_C++_Idioms
2015-01-07
Simple Modern C++ test framework (test.hpp)
  1. #include "test.hpp"
  2.  
  3. test example_test = [] {
  4. expect(true);
  5. };
  6.  
  7. test different_test = [] {
  8. expect_eq(1, 1);
  9. };
  10.  
  11. test_skip skip_me_test = [] {
  12. expect_neq(1, 2);
  13. };
  14.  
  15. test parametrized_test = [] {
  16. auto test = [](auto v) {
  17. expect(v > 0);
  18. };
  19.  
  20. test(1);
  21. test(2);
  22. };

2015-01-06
Best C++ OpenSource Libraries to work upon: http://www.easycppcodes.com/2015/01/best-c-opensource-libraries-to-work-upon.html
2015-01-05
An image server for legible & concise information: https://github.com/badges/shields
2015-01-04
Meeting C++ videos: https://www.youtube.com/channel/UCJpMLydEYA08vusDkq3FmjQ
2015-01-03
C++14 Interlude: http://talesofcpp.fusionfenix.com/post-19/interlude
2014-12-19
Rule of Zero: http://flamingdangerzone.com/cxx11/2012/08/15/rule-of-zero.html
2014-12-16
Top 5 Beautiful C++ std Algorithms Examples: http://www.bfilipek.com/2014/12/top-5-beautiful-c-std-algorithms.html
2014-12-14
Why Don't More People Work As Programmers?
http://www.forbes.com/sites/quora/2014/10/31/why-dont-more-people-work-as-programmers
2014-12-10
Five Popular Myths about C++:
2014-12-10
Perfect forwarding and universal references in C++: http://eli.thegreenplace.net/2014/perfect-forwarding-and-universal-references-in-c
2014-12-08
Design Patterns Revisited: http://gameprogrammingpatterns.com/design-patterns-revisited.html
2014-12-02
C++ Dos and Don'ts: http://www.chromium.org/developers/coding-style/cpp-dos-and-donts
2014-11-12
Microsoft Launches Free, Unrestricted Version Of Visual Studio For Small Teams:
2014-11-08
Where will Evolution lead C++17? http://meetingcpp.com/index.php/br/items/where-will-evolution-lead-cpp17.html
2014-11-05
A Video Interview with Herb Sutter on C++ Standards: https://www.youtube.com/watch?v=dTZvKAo8-Qg
2014-11-03
Boost 1.57.0 is out: http://www.boost.org/users/history/version_1_57_0.html
2014-10-29
Second Edition of "The Boost Libraries": http://theboostcpplibraries.com
2014-10-15
CodeRage9 - The totally technical online conference: http://forms.embarcadero.com/CodeRage9Registration
2014-10-02
Game Development: https://game-development.zeef.com
2014-09-15
CppCon 2014 materials/videos/summary:
2014-09-13
C++ Multimedia libraries:
2014-09-09
C++ Grandmaster Certification: http://cppgm.org
2014-09-03
Unity Vs. Marmalade Vs. V-Play Vs. Corona Vs. Cocos2D: Five Cross-platform Game Engines Compared:
http://renatus.com/unity-marmalade-v-play-corona-cocos2d-cross-platform-game-engines
2014-09-02
Static (constexpr) lambda: http://pfultz2.com/blog/2014/09/02/static-lambda
2014-09-01
Interactive Metaprogramming Shell Based on Clang:
2014-08-26
Real time computer vision libraries:
2014-08-22
Exercism is your place to engage in thoughtful conversations about code: http://exercism.io/about
2014-08-19
We have C++14! https://isocpp.org/blog/2014/08/we-have-cpp14
2014-08-11
Game code reviews: http://fabiensanglard.net
2014-08-01
Inspect C++ types with just one constexpr: https://bitbucket.org/p2rkw/hasmember/src
2014-07-17
Talks from C++Now 2014 are published at youtube: https://www.youtube.com/channel/UC5e__RG9K3cHrPotPABnrwg
2014-07-24
Dependency Injection Library:
2014-07-17
Testing libc++ with -fsanitize=undefined: http://cplusplusmusings.wordpress.com/2013/03/26/testing-libc-with-fsanitizeundefined
2014-07-11
Writing testable code:
2014-07-08
Boost releases: http://boost.cowic.de/rc
2014-07-02
CppDepend 4.0.0 Professional Edition review: reviews/cppdepend.txt
2014-06-28
Videos from C++ track on NDC Oslo: https://isocpp.org/blog/2014/06/videos-cpp-track-ndc-oslo-2014
2014-06-06
Guidelines to implement Boost library evolution policy (was Boost 2.0): https://svn.boost.org/trac/boost/wiki/BoostEvo
2014-06-02
The Swift Programming Language: https://developer.apple.com/library/prerelease/ios/documentation/swift/conceptual/swift_programming_language
2014-05-20
CppDepend manage complex code base and achieve high Code Quality: http://www.cppdepend.com
2014-04-28
Static code analysis: Dynamic code analysis:
2014-04-14
Facebook's C and C++ Preprocessor: https://github.com/facebook/warp
2014-04-10
C++ Benchmark Authoring Library/Framework:
2014-04-02
C++11/14 compiler and library shootout: http://cpprocks.com/c1114-compiler-and-library-shootout
2014-04-05
Under the Hood: warp, a fast C and C++ preprocessor:
2014-03-21
C++ FAQ: http://isocpp.org/faq
2014-02-11
Cocos2d-x - C++ Cross Platform Game Engine:
2014-02-08
GitHub Markdown Preview: http://github-preview.herokuapp.com
2014-02-05
The quest for a c++ Dependency Injection Container library:
2014-02-04
Android Game Engines: http://mobilegameengines.com/android/game_engines
2014-02-01
Comparison of continuous integration software: http://en.wikipedia.org/wiki/Comparison_of_continuous_integration_software

2014-01-22
Code is not literature: http://www.gigamonkeys.com/code-reading
2014-01-12
Boost Community Maintenance Team Proposal: https://dl.dropboxusercontent.com/u/9897665/community-maintenance.html
2014-01-10
The ACCU Conference for 2014 : http://accu.org/index.php/conferences/accu_conference_2014/accu2014_schedule
2014-01-02
C++ interlude: http://talesofcpp.fusionfenix.com/post-13/interlude
2013-12-14
Native Client is a sandbox for running compiled C and C++ code in the browser efficiently and securely, independent of the user's operating system:
https://developers.google.com/native-client/dev
2013-12-13
Are Your Programmers Working Hard, Or Are They Lazy?
http://mikehadlow.blogspot.co.uk/2013/12/are-your-programmers-working-hard-or.html
2013-12-12
Obscure C++ Features: http://madebyevan.com/obscure-cpp-features
2013-12-02
CppQuiz.org officially launched! http://cppquiz.org
2013-11-17
Bridge support in git for mercurial and bazaar: http://felipec.wordpress.com/2012/11/13/git-remote-hg-bzr-2
2013-10-28
Tales of C++: http://talesofcpp.fusionfenix.com
2013-10-24
Understanding lvalues and rvalues in C and C++ http://eli.thegreenplace.net/2011/12/15/understanding-lvalues-and-rvalues-in-c-and-c
2013-10-20
Post-Chicago standards papers: http://isocpp.org/blog/2013/10/mailing
2013-10-19
A Pragmatic Case for Static Typing with Brian Hurt: http://vimeo.com/72870631
2013-10-18
C++11 remake of the Boost.MPL: https://github.com/ldionne/mpl11
2013-10-16
C++11 and boost: http://meetingcpp.com/index.php/br/items/c11-and-boost.html
2013-10-12
boost::mpl::vector limit size:
  1. #define BOOST_MPL_LIMIT_VECTOR_SIZE 70
  2.  
  3. #if (BOOST_MPL_LIMIT_VECTOR_SIZE <= 50)
  4. #define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
  5. #include <boost/mpl/vector.hpp>
  6. #else
  7. #include <boost/preprocessor/iterate.hpp>
  8. #include <boost/mpl/vector/vector50.hpp>
  9.  
  10. namespace boost {
  11. namespace mpl {
  12. #define BOOST_PP_ITERATION_PARAMS_1 \
  13.   (3,(51, BOOST_MPL_LIMIT_VECTOR_SIZE, <boost/mpl/vector/aux_/numbered.hpp>))
  14. #include BOOST_PP_ITERATE()
  15. } // namespace mpl
  16. } // namespace boost
  17.  
  18. #define BOOST_MPL_PREPROCESSING_MODE
  19. #include <boost/mpl/vector.hpp>
  20. #undef BOOST_MPL_PREPROCESSING_MODE
  21. #endif
  22.  
  23. int main() {
  24. typedef boost::mpl::vector<
  25. int, int, int, int, int, int, int, int, int, int /* 10 */
  26. , int, int, int, int, int, int, int, int, int, int /* 20 */
  27. > vector_20_t;
  28.  
  29. typedef boost::mpl::vector<
  30. int, int, int, int, int, int, int, int, int, int /* 10 */
  31. , int, int, int, int, int, int, int, int, int, int /* 20 */
  32. , int, int, int, int, int, int, int, int, int, int /* 30 */
  33. , int, int, int, int, int, int, int, int, int, int /* 40 */
  34. , int, int, int, int, int, int, int, int, int, int /* 50 */
  35. , int, int, int, int, int, int, int, int, int, int /* 60 */
  36. , int, int, int, int, int, int, int, int, int, int /* 70 */
  37. > vector_70_t;
  38.  
  39. return 0;
  40. }

2013-10-10

2013-10-08
Smart pointers in Boost, TR1, and C++11: http://www.codesynthesis.com/~boris/blog/2010/05/24/smart-pointers-in-boost-tr1-cxx-x0
2013-10-02
Effective GoF Patterns with C++11 and Boost: http://www.infoq.com/presentations/gof-patterns-c-plus-plus-boost
2013-10-01
Template Metaprogramming in C++: View | Download
2013-09-20
GitHub from the command-line: https://www.sociomantic.com/blog/2013/09/github-from-the-command-line
2013-09-16
C++ Papers for Chicago (Core, Concepts & Evolution): http://meetingcpp.com/index.php/br/items/c-papers-for-chicago-part-2-core-concepts-evolution.html
2013-09-15
Display Pre-defined C/C++ Compiler Macros:
g++/clang++ -dM -E - < /dev/null
List of Pre-defined C/C++ Compiler Macros: http://beefchunk.com/documentation/lang/c/pre-defined-c/index.php
2013-09-13

2013-09-11
Zoltan Porkolab: Debugging and Profiling C++ Template Metaprograms:
2013-09-10
Clang Tools: http://clang.llvm.org/docs/ClangTools.html
2013-09-09

2013-09-07
Concepts-Lite: http://concepts.axiomatics.org/~ans
2013-09-04
GoingNative 2013: http://channel9.msdn.com/Events/GoingNative/2013
2013-09-02
Simple Depedency Injection framework using C++11 (di.hpp)
  1. #include <cassert>
  2. #include <memory>
  3. #include "di.hpp"
  4.  
  5. struct A { };
  6.  
  7. struct B
  8. {
  9. public:
  10. CTOR(B, int, std::shared_ptr<A> a)
  11. : a(a)
  12. { }
  13.  
  14. std::shared_ptr<A> a;
  15. };
  16.  
  17. struct C
  18. {
  19. CTOR(C, int, double, int, std::shared_ptr<A> a, std::shared_ptr<B> b) {
  20. assert(b->a == a);
  21. }
  22. };
  23.  
  24. int main() {
  25. C c = di<>().create<C>();
  26. return 0;
  27. }

2013-09-01
The Future is Here: C++ 11: http://www.youtube.com/watch?v=jPruO9ZS-yY
2013-08-30
A tool for use with clang to analyze #includes in C and C++ source files:
https://code.google.com/p/include-what-you-use/wiki/InstructionsForUsers
2013-08-20
Type Classes: http://functionalcpp.wordpress.com/2013/08/16/type-classes
2013-08-19
C++ String to Int: http://www.kumobius.com/2013/08/c-string-to-int
2013-07-29
Test-driven development and unit testing with examples in C++: http://alexott.net/en/cpp/CppTestingIntro.html
2013-07-25
SDL2 on windows with mingw:
2013-07-23
Type erasure example based on simple smart pointer implementation:
  1. #include <iostream>
  2.  
  3. template<typename T>
  4. class smart_ptr
  5. {
  6. public:
  7. smart_ptr(T* obj) // non explicit
  8. : obj_(obj)
  9. { }
  10.  
  11. ~smart_ptr() {
  12. delete obj_;
  13. }
  14.  
  15. private:
  16. T* obj_;
  17. };
  18.  
  19. template<>
  20. class smart_ptr<void>
  21. {
  22. class ideleter
  23. {
  24. public:
  25. virtual void delete_ptr(void*) = 0;
  26. virtual ~ideleter() { }
  27. };
  28.  
  29. template<typename T>
  30. class deleter : public ideleter
  31. {
  32. public:
  33. virtual void delete_ptr(void* ptr) {
  34. delete static_cast<T*>(ptr);
  35. }
  36. };
  37.  
  38. public:
  39. template<typename T>
  40. smart_ptr(T* obj) // non explicit
  41. : deleter_(new deleter<T>)
  42. , obj_(obj)
  43. { }
  44.  
  45. ~smart_ptr() {
  46. deleter_->delete_ptr(obj_);
  47. delete deleter_;
  48. }
  49.  
  50. private:
  51. ideleter* deleter_;
  52. void* obj_;
  53. };
  54.  
  55. struct A
  56. {
  57. A() {
  58. std::clog << __PRETTY_FUNCTION__ << std::endl;
  59. }
  60.  
  61. ~A() {
  62. std::clog << __PRETTY_FUNCTION__ << std::endl;
  63. }
  64. };
  65.  
  66. int main()
  67. {
  68. {
  69. smart_ptr<A> a(new A());
  70. //A::A()
  71. //A::~A()
  72. }
  73.  
  74. {
  75. smart_ptr<void> a(new A());
  76. //A::A()
  77. //A::~A()
  78. }
  79.  
  80. return 0;
  81. }

2013-07-23
Sean Parent: Value Semantics and Concepts-based Polymorphism: http://www.youtube.com/watch?v=_BpMYeUFXv8
2013-07-22
SDL Boost Meta State Machine Wrapper (sdl_msm.hpp)
  1. #include "sdl_msm.hpp"
  2.  
  3. struct button_clicked
  4. {
  5. static const int id = SDL_MOUSEBUTTONUP;
  6.  
  7. explicit button_clicked(const SDL_Event& event)
  8. : x(event.button.x), y(event.button.y)
  9. { }
  10.  
  11. int x = 0;
  12. int y = 0;
  13. };
  14.  
  15. struct time_click
  16. {
  17. static const int id = __LINE__;
  18. };
  19.  
  20. class controller : public state_machine_def<controller>
  21. {
  22. struct idle : state<>, euml_state<idle> { };
  23. struct clicked : state<>, euml_state<clicked> { };
  24.  
  25. public:
  26. typedef vector<idle, timeout> initial_state;
  27.  
  28. BOOST_MSM_EUML_DECLARE_TRANSITION_TABLE((
  29. clicked() == idle() + button_clicked()
  30. idle() == clicked() + time_click()
  31. ), transition_table);
  32. };
  33.  
  34. typedef sdl::msm<controller> controller_t;
  35.  
  36. int main() {
  37. controller_t controller_;
  38.  
  39. sdl::timer timer(
  40. 1000 // time in milliseconds
  41. , [&](sdl::milliseconds_t interval) {
  42. controller_.process_event(time_tick());
  43. return 0; // non periodic
  44. }
  45. );
  46.  
  47. SDL_Event event;
  48. while (SDL_PollEvent(&event)) {
  49. controller_.process_event(event);
  50. }
  51.  
  52. return 0;
  53. }

2013-07-21
Using strings in C++ template metaprograms: http://cpp-next.com/archive/2012/10/using-strings-in-c-template-metaprograms
2013-07-20
SDL timer facility:
  1. #include <cassert>
  2. #include <functional>
  3. #include "SDL.h"
  4.  
  5. typedef Uint32 milliseconds_t;
  6.  
  7. class timer
  8. {
  9. typedef std::function<Uint32(Uint32)> callback_t;
  10.  
  11. public:
  12. timer(milliseconds_t time, const callback_t& callback)
  13. : callback_(callback)
  14. {
  15. id_ = SDL_AddTimer(time, &timer::do_callback, &callback_);
  16. }
  17.  
  18. ~timer() {
  19. assert(SDL_RemoveTimer(id_));
  20. }
  21.  
  22. private:
  23. static Uint32 do_callback(Uint32 interval, void* data) {
  24. return (*static_cast<callback_t*>(data))(interval);
  25. }
  26.  
  27. callback_t callback_;
  28. SDL_TimerID id_;
  29. };
  30.  
  31. int main() {
  32. timer t(100, [](Uint32 interval){ return interval; });
  33. return 0;
  34. }

2013-07-19
14.5.3 [temp.variadic] p4:
Pack expansions can occur in the following contexts:
  • In a function parameter pack (8.3.5); the pattern is the parameter-declaration without the ellipsis.
  • In a template parameter pack that is a pack expansion (14.1):
    • if the template parameter pack is a parameter-declaration; the pattern is the parameter-declaration without the ellipsis;
    • if the template parameter pack is a type-parameter with a template-parameter-list; the pattern is the corresponding type-parameter without the ellipsis.
  • In an initializer-list (8.5); the pattern is an initializer-clause.
  • In a base-specifier-list (Clause 10); the pattern is a base-specifier.
  • In a mem-initializer-list (12.6.2); the pattern is a mem-initializer.
  • In a template-argument-list (14.3); the pattern is a template-argument.
  • In a dynamic-exception-specification (15.4); the pattern is a type-id.
  • In an attribute-list (7.6.1); the pattern is an attribute.
  • In an alignment-specifier (7.6.2); the pattern is the alignment-specifier without the ellipsis.
  • In a capture-list (5.1.2); the pattern is a capture.
  • In a sizeof... expression (5.3.3); the pattern is an identifier.
  1. class app
  2. {
  3. public:
  4. template<typename... Args>
  5. explicit app(Args&&... args)
  6. : v{std::forward<Args>(args)...}
  7. { };
  8.  
  9. or
  10.  
  11. template<typename... Args>
  12. explicit app(Args&&... args) {
  13. std::initializer_list<int>{(v.push_back(std::forward<Args>(args)), 0)...};
  14.  
  15. };
  16.  
  17. or
  18.  
  19. template<typename... Args>
  20. explicit app(Args&&... args) {
  21. int dummy[]{0, (v.push_back(std::forward<Args>(args)), 0)...};
  22. };
  23.  
  24. private:
  25. std::vector<std::shared_ptr<I>> v;
  26. };

2013-07-16
LLVM 3.3 is released / Clang 3.3 (as GCC 4.8.1) includes full C++11 support: http://llvm.org/releases/download.html#3.3
2013-07-10
Source code and assets for the TwinklebearDev SDL 2.0 Lessons: https://github.com/Twinklebear/TwinklebearDev-Lessons
2013-07-09
GCC prebuilt binaries (ARMv7 and Aarch64): https://launchpad.net/linaro-toolchain-binaries/+download
2013-07-08
C++ knowledge tests and interviews:
2013-07-06
Comparison of Diagnostics between GCC and Clang: http://gcc.gnu.org/wiki/ClangDiagnosticsComparison
2013-07-05
variadic pool:
  1. #include <cassert>
  2.  
  3. template<typename... TArgs>
  4. class pool : TArgs...
  5. {
  6. public:
  7. template<typename... Args>
  8. explicit pool(Args&... args)
  9. : Args(args)...
  10. { }
  11.  
  12. template<typename T>
  13. T& get() {
  14. return static_cast<T&>(*this);
  15. }
  16. };
  17.  
  18. class a {};
  19. class b {};
  20.  
  21. int main() {
  22. a a_;
  23. b b_;
  24.  
  25. {
  26. pool<a, b> p(a_, b_);
  27. assert(&a_ == &p.get<a>());
  28. assert(&b_ == &p.get<b>());
  29. }
  30.  
  31. {
  32. pool<a, b> p(b_, a_);
  33. assert(&a_ == &p.get<a>());
  34. assert(&b_ == &p.get<b>());
  35. }
  36.  
  37. return 0;
  38. }

2013-07-04
"Google Mock" mocks generator based on libclang: https://github.com/krzysztof-jusiak/gmock
2013-07-03
Cucumber - behavior driven development with elegance and joy: http://cukes.info/
2013-07-02
The Type Traits Introspection Library (boost 1.54.0): http://www.boost.org/doc/libs/1_54_0/libs/tti/doc/html/index.html
2013-06-25
SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages: http://www.swig.org
2013-06-21
std::bind with google mock:
  1. class example
  2. {
  3. typedef std::function<void(int)> func_t;
  4.  
  5. public:
  6. explicit example(const func_t& f);
  7. };
  8.  
  9. //usage
  10. class yac
  11. {
  12. public:
  13. void execute(int);
  14. };
  15.  
  16. int main() {
  17. yac yac_;
  18. auto e = std::make_unique<example>(std::bind(&func::execute, yac_));
  19. e...
  20. }
  21.  
  22. //test
  23. namespace GT = ::testing;
  24.  
  25. class example_test : GT::Test
  26. {
  27. public:
  28. MOCK_METHOD1(void, execute(int));
  29.  
  30. example_test()
  31. : sut(std::bind(&example_test::execute, this))
  32. { }
  33.  
  34. example sut;
  35. };
  36.  
  37. TEST_F(example_test, test)
  38. {
  39. EXPECT_CALL(*this, execute(GT::_))...
  40.  
  41. sut...
  42. }

2013-06-20
Clean Code Cheat Sheet: http://www.planetgeek.ch/2013/06/05/clean-code-cheat-sheet
2013-06-15

2013-06-12
simple stream logger (logger.hpp)
  1. #include "logger.hpp"
  2.  
  3. int main() {
  4. LOG(error) << "error"; //logger.cpp:4:0: error: main: error
  5. LOG(warn) << "warn"; //logger.cpp:5:0: warn: main: warn
  6. LOG(debug) << "debug"; //logger.cpp:6:0: warn: main: debug
  7. LOG(info) << "info"; //
  8. LOG(trace) << "trace"; //
  9.  
  10. return 0;
  11. }

2013-06-10
Dependency Injection Frameworks for C++:
2013-06-09
Super-project for modularized Boost: https://github.com/boostorg
2013-06-08
Functional Patterns in C++: http://isocpp.org/blog/2013/05/functional-patterns-in-c-bartosz-milewski
2013-06-07
C++ Development Training by Scott Meyers: http://www.develop.com/training-courses/c++
2013-06-06
compile time type print:
  1. #include <iostream>
  2. #include <boost/units/detail/utility.hpp>
  3.  
  4. namespace {
  5.  
  6. template<int Value = 0, typename T = void>
  7. struct Print
  8. {
  9. unsigned : 80;
  10. typedef T type;
  11. };
  12.  
  13. #define PRINT(T) Print<__LINE__, T>
  14.  
  15. template<typename T>
  16. std::string print() {
  17. return boost::units::detail::demangle(typeid(T).name());
  18. }
  19.  
  20. template<typename T>
  21. std::string print(const T& p_t) {
  22. return boost::units::detail::demangle(typeid(p_t).name());
  23. }
  24.  
  25. } // namespace
  26.  
  27. class hello_world { };
  28.  
  29. class warn : PRINT(hello_world) // print.cpp:29:14: warning: ...Print<29, hello_world>...
  30. { };
  31.  
  32. int main() {
  33. std::cout << print<int>() << std::endl; //int
  34.  
  35. int i = 0;
  36. std::cout << print(i) << std::endl; // int
  37.  
  38. }

2013-06-05
Boost conference videos: http://www.youtube.com/channel/UC5e__RG9K3cHrPotPABnrwg
2013-06-02
ISO C++ Standard - Future Proposals: https://groups.google.com/a/isocpp.org/forum/?fromgroups#!forum/std-proposals
2013-05-21
Online C/C++ compilers: http://isocpp.org/blog/2013/01/online-c-compilers
2013-05-18
GCC D Compiler for GNU/Linux: http://gdcgnu.sourceforge.net
2013-05-12
Cross GCC for x64 & x86 windows: http://mingw-w64.sourceforge.net
2013-05-10

2013-05-08
C++11 compiler support status: http://wiki.apache.org/stdcxx/C++0xCompilerSupport
2013-05-02
low debug size sequence for each:
  1. #include <cassert>
  2. #include <boost/utility/enable_if.hpp>
  3. #include <boost/mpl/vector.hpp>
  4. #include <boost/mpl/pop_front.hpp>
  5. #include <boost/mpl/front.hpp>
  6. #include <boost/mpl/empty.hpp>
  7. #include <boost/mpl/int.hpp>
  8.  
  9. namespace mpl = boost::mpl;
  10.  
  11. namespace {
  12.  
  13. template<typename Seq, typename F>
  14. inline static void for_each(F, typename boost::enable_if<mpl::empty<Seq>>::type* = 0) { }
  15.  
  16. template<typename Seq, typename F>
  17. inline static void for_each(F p_f, typename boost::disable_if<mpl::empty<Seq>>::type* = 0) {
  18. p_f.template operator()<typename mpl::front<Seq>::type>();
  19. for_each<typename mpl::pop_front<Seq>::type>(p_f);
  20. }
  21.  
  22. } // namespace
  23.  
  24. class accumulate
  25. {
  26. public:
  27. explicit accumulate(int& result)
  28. : result(result)
  29. { }
  30.  
  31. template<typename T>
  32. void operator()() {
  33. result += T::value;
  34. }
  35.  
  36. private:
  37. int& result;
  38. };
  39.  
  40. int main() {
  41. int result = 0;
  42. for_each<mpl::vector<mpl::int_<40>, mpl::int_<2>>>(accumulate(result));
  43. assert(42 == result);
  44.  
  45. return 0;
  46. }

2013-04-29
Runtime compiled C++:
2013-04-28
Vim configuration with clang: screenshot / vim.tar.gz

2013-04-24
C9 Lectures: Stephan T. Lavavej - Core C++: http://channel9.msdn.com/Series/C9-Lectures-Stephan-T-Lavavej-Core-C-
2013-04-21
Development, Design, Algorithms & Analytics: http://www.topcoder.com
2013-04-15
The Clean Code Talks - Unit Testing: http://www.youtube.com/watch?v=wEhu57pih5w
The Clean Code Talks - Don't Look For Things: http://www.youtube.com/watch?v=RlfLCWKxHJ0
2013-03-23
demangle:
  1. #include <cxxabi.h>
  2. #include <string>
  3. #include <boost/shared_ptr.hpp>
  4.  
  5. std::string demangle(const std::string& mangled) {
  6. char* demangled = abi::__cxa_demangle(mangled.c_str(), 0, 0, 0);
  7. if (demangled) {
  8. boost::shared_ptr<char> free(demangled, ::free);
  9. return demangled;
  10. }
  11.  
  12. return "";
  13. }
  14.  
  15. int main() {
  16. assert("int" == demangle(typeid(int).name()));
  17. assert("std::string" == demangle(typeid(const std::string&).name()));
  18. return 0;
  19. }

2013-03-21
Google testing blog: http://googletesting.blogspot.com
2013-02-10
C++ Finite-state machine frameworks comparison: View | Download
C++ dispatching concepts comparison: View | Download

2013-02-01
The home of Standard C++ on the web - news, status and discussion about the C++ standard on all compilers and platforms: htpp://isocpp.org