2016-06-19 12 views
11

W tej chwili boost::optional<> obsługuje odniesienia, ale std::experimental::optional<> w moim systemie z biblioteki libstdC++ nie działa. Czy odzwierciedla to, co może stać się standardem?Czy std :: experimental :: optional <> odniesienie do pomocy technicznej?

Wiem, że opcjonalny autor wniosku wydzielił opcjonalne referencje jako oddzielną propozycję, aby główna opcjonalna propozycja miała większe szanse na akceptację. Czy została odrzucona propozycja opcjonalnych odwołań odrzuconych lub nad nimi działała?

+3

Zawsze można użyć 'std :: reference_wrapper'. Wspieranie "surowych" odniesień otworzyłoby cały wymiar możliwości strzelania sobie w stopę. – bobah

+1

@bobah Wspomnę o twoim komentarzu w mojej odpowiedzi. Czy to dla ciebie w porządku? – skypjack

+2

@skypjack - sure :-) – bobah

Odpowiedz

8

Czy odzwierciedla to, co może stać się standardem?

z projektu roboczego ([20.5.2/1]):

Program, który wymaga konkretyzacji szablonu opcjonalnym dla typu referencyjnego [...] jest źle sformułowane.

Sądzę, że to odpowiada na twoje pytanie.

Należy pamiętać, że można nadal obejść go, używając std::reference_wrapper, jak wspomniano przez @bobah w komentarzach.

Powiązane problemy