enum
взлом раньше был необходим, потому что много компиляторов не поддерживали оперативную инициализацию значения. Так как это больше не проблема, пойдите для другой опции. Современные компиляторы также способны к оптимизации этой константы так, чтобы никакое пространство памяти не требовалось для него.
единственная причина того, чтобы не использовать static const
вариант - то, если Вы хотите к , запрещают взятие адреса значения: Вы не можете взять адрес enum
значение, в то время как можно взять адрес константы (и это запросило бы компилятор резервировать пространство для значения, в конце концов, но [только 115], если его адрес действительно взят).
Кроме того, взятие адреса приведет к разовой ссылкой ошибке, если константа не будет явно , определил также. Заметьте, что это может все еще быть инициализировано на сайте объявления:
struct foo {
static int const bar = 42; // Declaration, initialization.
};
int const foo::bar; // Definition.
Это потому, что
:style => "color:#aaa;",
Вы должны добавить условие, которое проверяет введенное значение и значение по умолчанию.
upd: образец проверки на стороне клиента jquery:
$(document).ready(function () {
$input = $('input#id');
$input.css('color', $input.val() === DEFAULT_VALUE ? '#aaa' : '#000');
})