Visual Studio 2012を使用していますが(VC++ 2010ビルドツールを使用しています)、後で別のクラスで呼び出すクラスで定義されたこれら2つのオーバーロードされた関数(下記)最初のクラスをインスタンス化し、クラス:私は、関数呼び出しを行うとVisual C++ 2010でオーバーロードされた関数のboolの文字列を受け入れる
Defined in the class:
Node CreateNode(Node *parent,string name,string node_text,bool expects_node = true);
Node CreateNode(Node *parent,string name, string attribute, string value,bool expects_node = true)
Calling these functions in the macro:
Node axis1 = handler->CreateNode(&sparse,"axis","id","trigger_pt");
、それは第二ではない、最初の関数を呼び出します!したがって、2番目の文字列をブール値として扱います。しかし、関数呼び出しに "true"を追加すると、期待通りに2番目の関数が呼び出されます。誰もこれを説明できますか?ありがとう!
または、これを自動的にするために 'const char *'を受け入れる第3のオーバーロードを追加してください。 – GManNickG
私はときどき明示的なパラメータ... 'void f(明示的なconst bool b);'を望みます。たぶんC++ 2100? BTW:完全な変換シーケンス[ここ](http://stackoverflow.com/a/15032114/2073257)を検索します。 –
@GManNickGありがとう、私はそれを追加しました。 –