SFINAE i decltype (auto)

Jeśli szablon funkcji powrócidecltype(auto) (lub inny typ specyfikacji używającyauto) ale instrukcja return byłaby źle sformatowana, czy wynik SFINAE? Jestreturn oświadczenie uważane za bezpośredni kontekst podpisu funkcji?

Nic w szkicu N3690 nie wymaga tego. Domyślnie SFINAE nie ma zastosowania.

Wydaje się to niefortunne, ponieważ można napisać funkcję do przekazania innej funkcji, ale nie można uzależnić jej istnienia od delegata, jak przy pisaniu odręcznym. Ponadto sprawdzanie istnienia funkcji elementu niestacjonarnego równorzędnego nie może być wykonane bezdecltype(auto) bothis nie można użyć w podpisie funkcji. Wskazuje to jednak na podstawowy problemdecltype(auto) zapewnia ścieżkę do uznania typu klasy za kompletny w podpisie członka, gdzie nie jest.

Czy została napisana propozycja, czy problem został formalnie przeanalizowany w dowolnym miejscu?

Możliwość traktowania typu klasy jako kompletnego w podpisie członka może mieć inne implikacje… ale to tylko karma dla innego pytania.

questionAnswers(2)

yourAnswerToTheQuestion