Size: a a a

cxx.Дискуссионная

2020 February 08

Е

Егор in cxx.Дискуссионная
Levi
Это майнкрафт для кросфайре
источник

/dev/urandon ¯\_(ツ)_/¯ in cxx.Дискуссионная
Ofee
01
10

А то поназаписывают хексом без документации и с невнятными именами и выясняй потом лично у автора...
А пишешь числа все рано один раз, а везде в других местах юзаешь имена
источник

O

Ofee in cxx.Дискуссионная
/dev/urandon ¯\_(ツ)_/¯
Когда у тебя будет флагов 40, задолбаешься нули считать
Даже вариант  1 << 1 кажется лучше на фоне хекса...
источник

/dev/urandon ¯\_(ツ)_/¯ in cxx.Дискуссионная
Ofee
Даже вариант  1 << 1 кажется лучше на фоне хекса...
Тоже норм
источник

OK

Oleg Kizilov in cxx.Дискуссионная
Ofee
Даже вариант  1 << 1 кажется лучше на фоне хекса...
Вот да
источник

O

Ofee in cxx.Дискуссионная
/dev/urandon ¯\_(ツ)_/¯
А пишешь числа все рано один раз, а везде в других местах юзаешь имена
А разве это утверждение не нивелирует это? Да и в любом случае, если флагов больше 10 — мы либо занимаемся какими-то микрооптимизациями и нам в любом случае страдать, либо где-то с архитектурой накосячили...
источник

/dev/urandon ¯\_(ツ)_/¯ in cxx.Дискуссионная
Ofee
А разве это утверждение не нивелирует это? Да и в любом случае, если флагов больше 10 — мы либо занимаемся какими-то микрооптимизациями и нам в любом случае страдать, либо где-то с архитектурой накосячили...
Каким образом нивелирует?
источник

/dev/urandon ¯\_(ツ)_/¯ in cxx.Дискуссионная
Везде в клиентском коде юзай енамы по именам. Всё, что тебе нужно знать, что у каждого имени свой уникальный бит. Всё
источник

O

Ofee in cxx.Дискуссионная
Oleg Kizilov
Вот да
Хорошо, тогда вот ещё вопрос:
enum Foo: uint {  
 Value1 = 1,
 Value2 = Value1 << 1,
 Value3 = Value2 << 1,
 Value4 = Value3 << 1,
}
vs
enum Foo: uint {  
 Value1 = 1,
 Value2 = 1 << 1,
 Value3 = 1 << 2,
 Value4 = 1 << 3,
}

?
источник

/dev/urandon ¯\_(ツ)_/¯ in cxx.Дискуссионная
Ofee
Хорошо, тогда вот ещё вопрос:
enum Foo: uint {  
 Value1 = 1,
 Value2 = Value1 << 1,
 Value3 = Value2 << 1,
 Value4 = Value3 << 1,
}
vs
enum Foo: uint {  
 Value1 = 1,
 Value2 = 1 << 1,
 Value3 = 1 << 2,
 Value4 = 1 << 3,
}

?
1й вообще только какой-то любитель современного искусства мог написать
источник

O

Ofee in cxx.Дискуссионная
/dev/urandon ¯\_(ツ)_/¯
Каким образом нивелирует?
Пишутся-то один раз, а подсчитывать в обоих случаях их не нужно нигде, кроме как при написании. При чтении их просто видно табличкой. Естественно, это не работает, когда у нас есть значения с более чем одним установленным флагом, но это отдельный вопрос, наверное
источник

O

Ofee in cxx.Дискуссионная
/dev/urandon ¯\_(ツ)_/¯
1й вообще только какой-то любитель современного искусства мог написать
Хм, где-то видел такое счастье, кажется...
источник

O

Ostrich Corpsе in cxx.Дискуссионная
Levi
Каво
Ладно, я проверял
источник

/dev/urandon ¯\_(ツ)_/¯ in cxx.Дискуссионная
Ofee
Пишутся-то один раз, а подсчитывать в обоих случаях их не нужно нигде, кроме как при написании. При чтении их просто видно табличкой. Естественно, это не работает, когда у нас есть значения с более чем одним установленным флагом, но это отдельный вопрос, наверное
Они далеко не всегда один раз пишутся. Могут переписываться и дописываться. Вот тогда и подгорит
источник

/dev/urandon ¯\_(ツ)_/¯ in cxx.Дискуссионная
Если у тебя по 40 символов, 39 из которых нули, это не "просто видно"
источник

O

Ofee in cxx.Дискуссионная
/dev/urandon ¯\_(ツ)_/¯
Если у тебя по 40 символов, 39 из которых нули, это не "просто видно"
Я понял, что все варианты одинаково плохи, когда у тебя 40 флагов
источник

O

Ofee in cxx.Дискуссионная
/dev/urandon ¯\_(ツ)_/¯
Если у тебя по 40 символов, 39 из которых нули, это не "просто видно"
источник

O

Ofee in cxx.Дискуссионная
/dev/urandon ¯\_(ツ)_/¯
Если у тебя по 40 символов, 39 из которых нули, это не "просто видно"
источник

/dev/urandon ¯\_(ツ)_/¯ in cxx.Дискуссионная
3й ещё относительно терпимый
источник

O

Ofee in cxx.Дискуссионная
/dev/urandon ¯\_(ツ)_/¯
3й ещё относительно терпимый
А первую ошибку в каком из них увидел?
источник