Форма множественного числа слова [закрытое] “взаимное исключение”

Отказ от ответственности: Я отвечаю на вопрос в том виде, в котором он был задан, но если вы задаетесь вопросом, как этого добиться, то, скорее всего, что-то не так с вашим дизайном.

Краткий ответ: это нельзя сделать с помощью публичного наследства, полная остановка. Весь смысл общественного наследования заключается в том, что референс или указатель на объект из Derived могут использоваться как ссылка или указатель на объект из Base, независимо от контекста.

Таким образом, способ сделать это - пройти через частное наследование или переменную-член и открыть член Base только через метод доступа, возвращающий ссылку или указатель const:

#include <string>
struct Base
{
    // Mutating method. Not a chance of making it virtual.
    template <typename Anything>
    Base& operator=(const Anything& x)
    {
        m_int = x.AsInteger();
        return *this;
    }

    int AsInteger() const
    {
        return m_int;
    }

    int  m_int;
};

struct Derived : private Base
{
    template <typename Anything>
    Derived& operator=(const Anything& x)
    {
        m_text = x.AsString();
        Base::operator=(x);
        return *this;
    }
    const std::string& AsString() const
    {
        return m_text;
    }

    const Base& base() const {return *this;}

    // Invariant: Derived::m_text matches Base::m_x.
    std::string   m_text;
};

void ExamineBase(const Base* b)
{
    b->AsInteger();
}

void ExamineBase(const Base& b)
{
    b.AsInteger();
}

void InitBase(Base* b)
{
    *b = Base();
}

void InitBase(Base& b)
{
    b = Base();
}


int main()
{
    Base           b;
    InitBase(b);          // <----- (1)
    InitBase(&b);         // <----- (2)

    Derived        d;
    Derived&       ref = d;
    Derived*       ptr = &d;

    ExamineBase(ref.base());     // <----- (3)
    ExamineBase(&ptr->base());     // <----- (4)

    InitBase(ref.base());        // <----- BOOM!
    InitBase(&ptr->base());        // <----- BOOM!

    return 0;
}
42
задан Bruno 1 May 2012 в 11:47
поделиться

10 ответов

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

Использование -ices (например, множественное число от index и vertex) ) впадает в немилость. Индексы и вершины являются правильным использованием, например.

47
ответ дан 26 November 2019 в 23:27
поделиться

Может это как овца? Единственное и множественное число?

-1
ответ дан 26 November 2019 в 23:27
поделиться

Пусть решает их общее использование ...

GoogleFight

34
ответ дан 26 November 2019 в 23:27
поделиться

Мьютексы. Де-факто это правильно - подавляющее большинство людей (по моему опыту, конечно) называют их мьютексами, а не мутиками, а английский - это язык, который определяется использованием. :)

14
ответ дан 26 November 2019 в 23:27
поделиться

У меня есть решение для этого, но я не уверен, почему это будет иначе из одной среды в другую - хотя одно большое различие между этими двумя средами заключается в том, что WSS svc pack 1 был установлен в среде, в которой произошла ошибка.

Чтобы исправить эту проблему, я получил хорошую подсказку по этой ссылке - http://silverlight.net/forums/t/22787.aspx т.е. «пожалуйста, проверьте XML-схему вашей службы» и «последовательность в схеме отсортирована по алфавиту»

11
ответ дан 26 November 2019 в 23:27
поделиться

Как мьютекс является сокращением от «взаимного исключения», я могу только представить, что «взаимные исключения» станут мьютексами . Мутисы могут сбивать с толку. Лучше быть недвусмысленным.

В качестве примечания: это не чемодан, иначе это была бы мутация .

3
ответ дан 26 November 2019 в 23:27
поделиться

официальной правильной формы не существует, потому что « mutex 'не получил достаточно широкого распространения, чтобы войти ни в один из основных английских словарей. Таким образом, наиболее правильный термин - это то, что люди чаще всего используют. И я думаю, что попадания в Google являются довольно хорошим индикатором (относительной) частоты использования, как указал great_lama .

Другие английские существительные, оканчивающиеся на -ex или ] -ix :

  • Аффикс
  • Приложение
  • Вершина
  • Приложение
  • Шейка матки
  • Циркумфлекс
  • Комплекс
  • Кортикальный слой
  • Распятие
  • Дуплекс
  • Helix
  • Ibex
  • Индекс
  • Infix
  • Latex
  • Matrix
  • Phoenix
  • Префикс
  • Postfix
  • Reflex
  • Remix
  • Suffix
  • Vertex
  • Vortex

И еще много менее употребительных слов. Если вы посмотрите их в словаре, вы обнаружите, что в большинстве из них оба множественного числа показаны как допустимые. Некоторые из них имеют только форму -exes / -ixes , но немногие или ни одна (в зависимости от используемого словаря) имеют только форму -ices .

3
ответ дан 26 November 2019 в 23:27
поделиться

Либо / либо. Я видел и то, и другое (хотя мьютексы встречаются гораздо чаще).

Мьютексов нет ни в одном из известных мне настоящих словарей, поэтому нет никакого «официального ответа».

Индекс может быть множественным числом индексов или индексов, однако, так что логично, что мьютекс может последовать его примеру.

0
ответ дан 26 November 2019 в 23:27
поделиться

Я думаю, что истерическим изюмам (в данном случае тому факту, что «мьютекс» - это чемодан) не следует придавать слишком большое значение при решении таких проблем. Возможно, было бы полезнее рассмотреть похожие слова и их использование; рефлекс -> рефлексы, например.

Или используйте самый простой вариант: большинство множественных форм в английском используют -s / -es (в зависимости от того, является ли последняя буква воспринимаемой гласной); в данном случае -es.

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

0
ответ дан 26 November 2019 в 23:27
поделиться

Поскольку слово вершина может иметь множественное число как вершины или apices , я бы сказал, что вы можете произнести это либо мьютексы , либо муты . Все, что вам подходит.

0
ответ дан 26 November 2019 в 23:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: