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:
perf stat ./bench
perf record ./bench
perf report
-fno-omit-frame-pointer
perf record -g ./bench
perf report -g
-fno-omit-frame-pointer
perf record -g ./bench
perf report -g 'graph,0.5,caller'
static void escape(void *p) {
asm volatile("" : : "g"(p) : "memory");
}
static void clobber() {
asm volatile("" : : : "memory");
}
std::vector<int> v;
escape(&v);
(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:
wget ftp://ftp.mirrorservice.org/sites/sourceware.org/pub/gcc/snapshots/5-20150111/gcc-5-20150111.tar.bz2
tar xvjf gcc-5-20150111.tar.bz2
cd gcc-5-20150111
mkdir build && cd build && ../configure --enable-languages=c++ --enable-lto --enable-checking=release
make -j4
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)
#include "test.hpp"
test example_test = [] {
expect(true);
};
test different_test = [] {
expect_eq(1, 1);
};
test_skip skip_me_test = [] {
expect_neq(1, 2);
};
test parametrized_test = [] {
auto test = [](auto v) {
expect(v > 0);
};
test(1);
test(2);
};
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:
#define BOOST_MPL_LIMIT_VECTOR_SIZE 70
#if (BOOST_MPL_LIMIT_VECTOR_SIZE <= 50)
#define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
#include <boost/mpl/vector.hpp>
#else
#include <boost/preprocessor/iterate.hpp>
#include <boost/mpl/vector/vector50.hpp>
namespace boost {
namespace mpl {
#define BOOST_PP_ITERATION_PARAMS_1 \
(3,(51, BOOST_MPL_LIMIT_VECTOR_SIZE, <boost/mpl/vector/aux_/numbered.hpp>))
#include BOOST_PP_ITERATE()
} // namespace mpl
} // namespace boost
#define BOOST_MPL_PREPROCESSING_MODE
#include <boost/mpl/vector.hpp>
#undef BOOST_MPL_PREPROCESSING_MODE
#endif
int main() {
typedef boost::mpl::vector<
int, int, int, int, int, int, int, int, int, int /* 10 */
, int, int, int, int, int, int, int, int, int, int /* 20 */
> vector_20_t;
typedef boost::mpl::vector<
int, int, int, int, int, int, int, int, int, int /* 10 */
, int, int, int, int, int, int, int, int, int, int /* 20 */
, int, int, int, int, int, int, int, int, int, int /* 30 */
, int, int, int, int, int, int, int, int, int, int /* 40 */
, int, int, int, int, int, int, int, int, int, int /* 50 */
, int, int, int, int, int, int, int, int, int, int /* 60 */
, int, int, int, int, int, int, int, int, int, int /* 70 */
> vector_70_t;
return 0;
}
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)
#include <cassert>
#include <memory>
#include "di.hpp"
struct A { };
struct B
{
public:
CTOR(B, int, std::shared_ptr<A> a)
: a(a)
{ }
std::shared_ptr<A> a;
};
struct C
{
CTOR(C, int, double, int, std::shared_ptr<A> a, std::shared_ptr<B> b) {
assert(b->a == a);
}
};
int main() {
C c = di<>().create<C>();
return 0;
}
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:
#include <iostream>
template<typename T>
class smart_ptr
{
public:
smart_ptr(T* obj) // non explicit
: obj_(obj)
{ }
~smart_ptr() {
delete obj_;
}
private:
T* obj_;
};
template<>
class smart_ptr<void>
{
class ideleter
{
public:
virtual void delete_ptr(void*) = 0;
virtual ~ideleter() { }
};
template<typename T>
class deleter : public ideleter
{
public:
virtual void delete_ptr(void* ptr) {
delete static_cast<T*>(ptr);
}
};
public:
template<typename T>
smart_ptr(T* obj) // non explicit
: deleter_(new deleter<T>)
, obj_(obj)
{ }
~smart_ptr() {
deleter_->delete_ptr(obj_);
delete deleter_;
}
private:
ideleter* deleter_;
void* obj_;
};
struct A
{
A() {
std::clog << __PRETTY_FUNCTION__ << std::endl;
}
~A() {
std::clog << __PRETTY_FUNCTION__ << std::endl;
}
};
int main()
{
{
smart_ptr<A> a(new A());
//A::A()
//A::~A()
}
{
smart_ptr<void> a(new A());
//A::A()
//A::~A()
}
return 0;
}
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)
#include "sdl_msm.hpp"
struct button_clicked
{
static const int id = SDL_MOUSEBUTTONUP;
explicit button_clicked(const SDL_Event& event)
: x(event.button.x), y(event.button.y)
{ }
int x = 0;
int y = 0;
};
struct time_click
{
static const int id = __LINE__;
};
class controller : public state_machine_def<controller>
{
struct idle : state<>, euml_state<idle> { };
struct clicked : state<>, euml_state<clicked> { };
public:
typedef vector<idle, timeout> initial_state;
BOOST_MSM_EUML_DECLARE_TRANSITION_TABLE((
clicked() == idle() + button_clicked()
idle() == clicked() + time_click()
), transition_table);
};
typedef sdl::msm<controller> controller_t;
int main() {
controller_t controller_;
sdl::timer timer(
1000 // time in milliseconds
, [&](sdl::milliseconds_t interval) {
controller_.process_event(time_tick());
return 0; // non periodic
}
);
SDL_Event event;
while (SDL_PollEvent(&event)) {
controller_.process_event(event);
}
return 0;
}
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:
#include <cassert>
#include <functional>
#include "SDL.h"
typedef Uint32 milliseconds_t;
class timer
{
typedef std::function<Uint32(Uint32)> callback_t;
public:
timer(milliseconds_t time, const callback_t& callback)
: callback_(callback)
{
id_ = SDL_AddTimer(time, &timer::do_callback, &callback_);
}
~timer() {
assert(SDL_RemoveTimer(id_));
}
private:
static Uint32 do_callback(Uint32 interval, void* data) {
return (*static_cast<callback_t*>(data))(interval);
}
callback_t callback_;
SDL_TimerID id_;
};
int main() {
timer t(100, [](Uint32 interval){ return interval; });
return 0;
}
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.
class app
{
public:
template<typename... Args>
explicit app(Args&&... args)
: v{std::forward<Args>(args)...}
{ };
or
template<typename... Args>
explicit app(Args&&... args) {
std::initializer_list<int>{(v.push_back(std::forward<Args>(args)), 0)...};
};
or
template<typename... Args>
explicit app(Args&&... args) {
int dummy[]{0, (v.push_back(std::forward<Args>(args)), 0)...};
};
private:
std::vector<std::shared_ptr<I>> v;
};
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:
#include <cassert>
template<typename... TArgs>
class pool : TArgs...
{
public:
template<typename... Args>
explicit pool(Args&... args)
: Args(args)...
{ }
template<typename T>
T& get() {
return static_cast<T&>(*this);
}
};
class a {};
class b {};
int main() {
a a_;
b b_;
{
pool<a, b> p(a_, b_);
assert(&a_ == &p.get<a>());
assert(&b_ == &p.get<b>());
}
{
pool<a, b> p(b_, a_);
assert(&a_ == &p.get<a>());
assert(&b_ == &p.get<b>());
}
return 0;
}
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:
class example
{
typedef std::function<void(int)> func_t;
public:
explicit example(const func_t& f);
};
//usage
class yac
{
public:
void execute(int);
};
int main() {
yac yac_;
auto e = std::make_unique<example>(std::bind(&func::execute, yac_));
e...
}
//test
namespace GT = ::testing;
class example_test : GT::Test
{
public:
MOCK_METHOD1(void, execute(int));
example_test()
: sut(std::bind(&example_test::execute, this))
{ }
example sut;
};
TEST_F(example_test, test)
{
EXPECT_CALL(*this, execute(GT::_))...
sut...
}
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)
#include "logger.hpp"
int main() {
LOG(error) << "error"; //logger.cpp:4:0: error: main: error
LOG(warn) << "warn"; //logger.cpp:5:0: warn: main: warn
LOG(debug) << "debug"; //logger.cpp:6:0: warn: main: debug
LOG(info) << "info"; //
LOG(trace) << "trace"; //
return 0;
}
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:
#include <iostream>
#include <boost/units/detail/utility.hpp>
namespace {
template<int Value = 0, typename T = void>
struct Print
{
unsigned : 80;
typedef T type;
};
#define PRINT(T) Print<__LINE__, T>
template<typename T>
std::string print() {
return boost::units::detail::demangle(typeid(T).name());
}
template<typename T>
std::string print(const T& p_t) {
return boost::units::detail::demangle(typeid(p_t).name());
}
} // namespace
class hello_world { };
class warn : PRINT(hello_world) // print.cpp:29:14: warning: ...Print<29, hello_world>...
{ };
int main() {
std::cout << print<int>() << std::endl; //int
int i = 0;
std::cout << print(i) << std::endl; // int
}
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:
#include <cassert>
#include <boost/utility/enable_if.hpp>
#include <boost/mpl/vector.hpp>
#include <boost/mpl/pop_front.hpp>
#include <boost/mpl/front.hpp>
#include <boost/mpl/empty.hpp>
#include <boost/mpl/int.hpp>
namespace mpl = boost::mpl;
namespace {
template<typename Seq, typename F>
inline static void for_each(F, typename boost::enable_if<mpl::empty<Seq>>::type* = 0) { }
template<typename Seq, typename F>
inline static void for_each(F p_f, typename boost::disable_if<mpl::empty<Seq>>::type* = 0) {
p_f.template operator()<typename mpl::front<Seq>::type>();
for_each<typename mpl::pop_front<Seq>::type>(p_f);
}
} // namespace
class accumulate
{
public:
explicit accumulate(int& result)
: result(result)
{ }
template<typename T>
void operator()() {
result += T::value;
}
private:
int& result;
};
int main() {
int result = 0;
for_each<mpl::vector<mpl::int_<40>, mpl::int_<2>>>(accumulate(result));
assert(42 == result);
return 0;
}
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:
#include <cxxabi.h>
#include <string>
#include <boost/shared_ptr.hpp>
std::string demangle(const std::string& mangled) {
char* demangled = abi::__cxa_demangle(mangled.c_str(), 0, 0, 0);
if (demangled) {
boost::shared_ptr<char> free(demangled, ::free);
return demangled;
}
return "";
}
int main() {
assert("int" == demangle(typeid(int).name()));
assert("std::string" == demangle(typeid(const std::string&).name()));
return 0;
}
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