Determining the source of an included character in C ++

I am currently working on a project that prohibits the inclusion of a standard C ++ library. One of the compiled files we use lists the following character: _Xran__Q2_3std12_String_baseCFv

I believe this is due to standard library strings. Do I really think so? If not, does anyone know of an effective way to track the point at which this symbol was included? A quick search of the code base shows nothing obvious.

+5
source share
2 answers

This is not like VC mangling, which always starts with a question mark.

However, it follows the g ++ switching scheme, as suggested at startup

$ c++filt  --format=gnu "_Xran__Q2_3std12_String_baseCFv"
std::_String_base::_Xran( const(void))

, _Xran, , VC std::string.

, , , , #include <string>.

: ++ filter - , V++?

+2

, string.h - , , :

#include :

using namespace std;class string;struct{void hxtestfunc(void){typedef string hxtesttype;}};

" ", string.h( , string.h ) - .

, " " .

Visual ++ :

"{# . *}"

"\ 0\nusing namespace std; string string; struct {void htestfunc (void) {typedef string htesttype;}};"

.

0

All Articles