2016-09-06 3 views
0

Я хочу создать несколько псевдонимов для типа, что мне действительно нужно, как ниже,несколько псевдонимов для типа T

using MIN = MAX = AVG = nano_t; 

(это кажется более элегантным, менее типирование, а также есть больше два случая, когда я должен сделать это любопытное задание), а не делать это:

using.... 
using... 
using... every time 

но одно назначение линии не имеет смысла для компилятора, как я хочу, чтобы это было. Есть ли другой способ сделать это?

+2

Можете ли вы объяснить пример использования этого требования? Какая потребность в желании иметь несколько псевдонимов для одного типа. И если у вас есть MIN/MAX/AVG, я бы предпочел бы что-то вроде MIN_T, MAX_T и так далее. Все, что вы просите, звучит немного странно для меня! – Klaus

ответ

1

Очевидный ответ, чтобы сделать это в отдельных декларациях:

using MIN = nano_t; 
using MAX = nano_t; 
using AVG = nano_t; 

Если вы действительно хотите следовать DRY (но я бы не заморачиваться в таком маленьком примере), вы можете сделать это:

using min_max_avg_aliased_type = nano_t; 
using MIN = min_max_avg_aliased_type; 
using MAX = min_max_avg_aliased_type; 
using AVG = min_max_avg_aliased_type; 
+0

Одиночные задания невозможно :( –

+2

@FallingFromBed Почему? Вы можете уточнить (в идеале, отредактировав вопрос, чтобы включить это объяснение)? – Angew

6

using не допускает несколько псевдонимов, но typedef делает:

typedef nano_t MIN, MAX, AVG; 
+0

Спасибо, я должен был подумать об этом раньше, но в базе кода они уже «использовали» везде. Ваш ответ очень помогает в другом месте. –

+0

@FallingFromBed 'using' и' typedef' делают в этом случае то же самое. – Yakk

Смежные вопросы