7

私はブーストのドキュメントを読んでおり、http://www.boost.org/doc/libs/1_54_0/doc/html/lambda/le_in_details.htmlで次を参照してください。

オーバーロードできない演算子

一部の演算子はまったくオーバーロードできません (::、.、.*)。一部の演算子では、戻り値の型に関する要件により、オーバーロードしてラムダ ファンクターを作成することができません。これらの演算子は -> です。、->、new、new[]、delete、delete[]、および ?: (条件演算子)。

では、演算子は何->.ですか?Google とhttp://www.symbolhound.com/を試しましたが、何も役に立ちませんでした。N3337で検索すると、文末にある 1 つの結果が得られ->、Visual Studio 2012 はコンパイルされません。

class xT {
    bool operator ->. () {} /* fail */
};

std::string* p;
p->.size(); /* fail */

std::auto_ptr<std::string> a;
a->.size(); /* fail */

とも含めて意図的に書いたと思いますが->.->とは何ですか、なぜここにあるのでしょうか。.->.

4

3 に答える 3

3

C++11, 2.13: "Operators and punctuators" からわかるように、" ->." のような演算子はありません。

于 2013-09-20T08:18:25.500 に答える