Rzecz masz na myśli znany jest jako attribute specifiers. Jest próbą ujednolicenia różnych, platforma zależne, Specyfikatory:
Jak widać w załączonym linku do dokumentu, jedynymi specyfikatorami obsługiwanymi w C++ 11 są:
[[noreturn]]
[[carries_dependency]]
i C++ w 14:
[[deprecated]]
(również obsługiwane jako: [[deprecated("reason")]]
)
Więc odpowiedź brzmi: nie , nie jest to możliwe, używając tylko C++ 11 feat i.
Jeżeli nie jesteś zainteresowany tylko w przenośnych rozwiązań, nie może być sposobem. Standard C++ nie ogranicza tej listy:
Tylko następujące atrybuty są zdefiniowane przez standard C++. Wszystkie pozostałe atrybuty są zależne od implementacji.
Różne kompilatory mogą obsługiwać niektóre niestandardowe specyfikatory. Na przykład, można przeczytać this page aby dowiedzieć się, że Clang obsługuje:
Być może Twoja wersja GCC obsługuje także to specyfikator.This page zawiera raport o błędzie odnoszący się do obsługi atrybutów ogólnych. [[gnu::unused]]
jest również wymieniony.
Dlaczego uważasz, że to działa? Widziałeś jakieś specyfikacje językowe? – texasbruce
I nie, to nie działa. To tylko rozszerzenie gcc. Not language specs – texasbruce
To nie pasuje idealnie do twojego pytania jako odpowiedzi, ale [mój komentarz poniżej] (http://stackoverflow.com/questions/31909631/c11-style-unused-attribute-in-gcc#comment51735300_31909665) może Cię zainteresować . –