_GLIBCXX_BEGIN_NAMESPACE(std)
template<typename _Alloc>
class allocator;
template<class _CharT>
struct char_traits;
template<typename _CharT, typename _Traits = char_traits<_CharT>,
typename _Alloc = allocator<_CharT> >
class basic_string;
template<> struct char_traits<char>;
typedef basic_string<char> string;
#ifdef _GLIBCXX_USE_WCHAR_T
template<> struct char_traits<wchar_t>;
typedef basic_string<wchar_t> wstring;
#endif
#if (defined(__GXX_EXPERIMENTAL_CXX0X__) \
&& defined(_GLIBCXX_USE_C99_STDINT_TR1))
template<> struct char_traits<char16_t>;
template<> struct char_traits<char32_t>;
typedef basic_string<char16_t> u16string;
typedef basic_string<char32_t> u32string;
#endif
_GLIBCXX_END_NAMESPACE
−I identifier−list
Specifies a list of identifiers which are to be specially handled while parsing C and C++ source files. This option is specifically provided to handle special cases arising through the use of preprocessor macros. When the identifiers listed are simple identifiers, these identifiers will be ignored during parsing of the source files. If an identifier is suffixed with a ’+’ character, ctags will also ignore any parenthesis-enclosed argument list which may immediately follow the identifier in the source files. If two identifiers are separated with the ’=’ character, the first identifiers is replaced by the second identifiers for parsing purposes. The list of identifiers may be supplied directly on the command line or read in from a separate file. If the first character of identifier−list is ’@’, ’.’ or a pathname separator (’/’ or ’\’), or the first two characters specify a drive letter (e.g. "C:"), the parameter identifier−list will be interpreted as a filename from which to read a list of identifiers, one per input line. Otherwise, identifier−list is a list of identifiers (or identifier pairs) to be specially handled, each delimited by a either a comma or by white space (in which case the list should be quoted to keep the entire list as one command line argument). Multiple −I options may be supplied. To clear the list of ignore identifiers, supply a single dash ("−") for identifier−list.
This feature is useful when preprocessor macros are used in such a way that they cause syntactic confusion due to their presence. Indeed, this is the best way of working around a number of problems caused by the presence of syntax-busting macros in source files (see CAVEATS, below). Some examples will illustrate this point.
int foo ARGDECL4(void *, ptr, long int, nbytes)
In the above example, the macro "ARGDECL4" would be mistakenly interpreted to be the name of the function instead of the correct name of "foo". Specifying −I ARGDECL4 results in the correct behavior.
/* creates an RCS version string in module */
MODULE_VERSION("$Revision: 590 $")
In the above example the macro invocation looks too much like a function definition because it is not followed by a semicolon (indeed, it could even be followed by a global variable definition that would look much like a K&R style function parameter declaration). In fact, this seeming function definition could possibly even cause the rest of the file to be skipped over while trying to complete the definition. Specifying −I MODULE_VERSION+ would avoid such a problem.
CLASS Example {
// your content here
};
The example above uses "CLASS" as a preprocessor macro which expands to something different for each platform. For instance CLASS may be defined as "class __declspec(dllexport)" on Win32 platforms and simply "class" on UNIX. Normally, the absence of the C++ keyword "class" would cause the source file to be incorrectly parsed. Correct behavior can be restored by specifying −I CLASS=class.
So what your saying is that there's no code completion for STL stuff?
#include <string>
using namespace std;
strin
// it should be work!
So what your saying is that there's no code completion for STL stuff?
No, I suggest you can just use "string" as it is in global scopes.
see something like this:Quote#include <string>
using namespace std;
strin
// it should be work!