でC++機能マングル名を取得する、のValueHolder :: printValue私はコンパイル時(または実行時)にそのマングルされた名前を確認するにはどうすればよい私は、関数、クラスメソッドを持ってコンパイル時(または実行時)
class ValueHolder {
public:
void printValue();
} ;
。
たとえば、私はこれをやりたい:前提条件は、現代のコンパイラです@Marco Aを1として
"_ZN11ValueHolder10printValueEv"
:
const char *mangled_name = GetMangledNameOfSymbol(&ValueHolder::printValue);
この関数は以下のように文字列を返すことがあります。 typeidをサポートし、フラグをオンにしてこの機能を有効にするもの。
また、GCC & ClangとMSVC用のスタブ用に実用的な答えを受け入れます。
も – malat
(例えばSTD = C++ 11とstd ::文字列、および/または-DGLIBCXX_DEBUG' 'のようなもの)、それはコンパイラ+バージョンに依存するだけでなく、コンパイル時のフラグだけでなく、明確にしてください@ malatありがとう、私は答えにその作品を追加します。 –
これはすばらしい答えです。最近のコンパイラを使って反映するために、ちょっとだけ質問を変えようと思っています。 – iamacomputer