struct A
{
A(const A& src);
A(const char* src);
};
struct B
{
operator A();
operator char*();
};
void test()
{
B v;
A s(v);
}
EDG / Comeau и MSVC разрешают код, в то время как GCC 4.4.4, CLANG и BCC отклонить его как неоднозначный.
Член комитета C ++ ответил так (первоначально):
Это не двусмысленно; A (const A &) конструктор лучше, чем A (const char *) конструктор. Константа A & параметр привязывается непосредственно к результату функции преобразования, поэтому последовательность преобразования считается быть определенным пользователем преобразованием, за которым следует путем преобразования личности (13.3.3.1.4п1). Константа char * параметр - определяемое пользователем преобразование с последующей квалификацией преобразование, так что это хуже.
Затем он продолжил это.
На самом деле, я был неправ. Пока это правда, что второе преобразование последовательность в определяемом пользователем преобразовании последовательность - тай-брейк, ищу больше близко к 13.3.3.2p3, предпоследний маркер, показывает, что этот тай-брейк применяется только в том случае, если два последовательности содержат одинаковые определяемая пользователем последовательность преобразования, и в данном примере это не так. Поскольку преобразование одного конструктора последовательность использует B :: оператор A () и в других случаях используется b :: operator char * (), между ними нет тай-брейка определяемые пользователем последовательности преобразования и они неоднозначны.
У меня такой вопрос.
13.3.3.2 p3 утверждает, что,
Две неявные последовательности преобразования одинаковые формы неотличимы последовательности преобразования, если одна из применяются следующие правила.
Насколько я понимаю, ключевые слова являются «одним из следующих правил». Это не означает, что маркер, в котором указывается "та же последовательность преобразования" отменяет все вышеперечисленные. Я бы подумал "ранг S1 лучше Какое время загрузки? Я использую сетевую панель Firebug, чтобы узнать время отклика. В строке состояния сетевой панели сводка отображается следующим образом: 10 запросов 90 КБ ...
Я использую сетевую панель Firebug, чтобы увидеть время ответа. В строке состояния сетевой панели сводка отображается следующим образом:
10 запросов 90 КБ 10,22 с (загрузка 6,57 с)
Что означает время загрузки? Означает ли это, что после того, как контент был получен с сервера, потребовалось еще 6,57 секунды, чтобы страница стала пригодной для использования (то есть до завершения события onready)?
Примечание: сайт, который я тестирую, ОЧЕНЬ загружен Qooxdoo компоненты и множество JavaScript.