The code completion doesn't take into account the c++ version when asking for builtin defines from compiler.
(SVN revision at the time of writting: 9239)
In the file "plugins\codecompletion\nativeparser.cpp",
function NativeParser::AddCompilerPredefinedMacrosGCC,
on the line 2170 is the command to get the builtin defines
#ifdef __WXMSW__
const wxString args(_T(" -E -dM -x c++ nul"));
#else
const wxString args(_T(" -E -dM -x c++ /dev/null"));
#endif
This command doesn't take into account if user wants to compile project with -std=c++11 (-std=c++0x).
It means the __cplusplus define is always 199711L, instead of 201103L. Code completion then ignores std::shared_ptr, std::enable_if, [map::]emplace and other tokens which are "hidden" under #if __cplusplus >= 201103L.
I tried hacking the code to
#ifdef __WXMSW__
const wxString args(_T(" -E -dM -std=c++11 -x c++ nul"));
#else
const wxString args(_T(" -E -dM -std=c++11 -x c++ /dev/null"));
#endif
and then the __cplusplus define is 201103L (checked under Symbols(View: Everything)->#Preprocessor symbols) and code completion can successfuly parse std::shared_ptr, std::enable_if, [map::]emplace and emplace_hint and other tokens.
Unfortunately I don't know Code::Blocks source code well enough to make an adequate patch depending of project compiler options...