Есть ли расширение gcc для короткого замыкания в c ++?

Я бы хотел перегрузить operator&& а также operator|| в пользовательском классе, и я бы хотел, чтобы перегруженные операторы подчинялись короткому замыканию своих собственных аналогов.

Я знаю, что в языке c ++ нет механизма для этого, но мне интересно, возможно, у gcc есть какое-то расширение, которое сделало бы это возможным. Я знаю, что такое расширение может привести к нарушению gcc официального стандарта c ++, но я вижу отказ от ответственности на документация gcc что читает «По умолчанию GCC также предоставляет некоторые дополнительные расширения языка C ++, которые в редких случаях конфликтуют со стандартом C ++.«, поэтому не кажется странным спрашивать.

Если есть фундаментальная причина, по которой такое расширение просто не может работать, даже теоретически, это также было бы полезно знать в образовательных целях. Мне кажется, что short_circuit_inline ключевое слово, которое можно использовать в качестве замены для inline будет иметь четко определенный смысл и прямую реализацию, но, возможно, я ошибаюсь.

Для чего это стоит, у меня в настоящее время есть обходной путь макросов, AND(x,y,...,z) что делает короткозамкнутым x && y && ... && z для экземпляров моего пользовательского класса. Мое желание к операторам в какой-то степени только для косметических целей.

2

Решение

Ответ — нет». Все расширения gcc C ++ описаны здесь: https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Extensions.html. Там нет перечисленных расширений, которые работают так, как вы описали.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]