Использование для анонимных пространств имен в заголовочных файлах

Можете ли вы обновить любую другую запись в этой таблице, или эта таблица сильно используется? Я думаю, что, пытаясь получить блокировку, которую необходимо обновить, установленный тайм-аут истекает. Вы можете увеличить время, которое может помочь.

49
задан David Norman 10 December 2008 в 21:18
поделиться

4 ответа

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

маркер ignore для кортежей, упомянутых в другом ответе, является одним примером, _1, _2 и т.д. связывают заполнителей, другие.

26
ответ дан James Hopkin 7 November 2019 в 21:55
поделиться

Я не вижу точки в помещении анонимного пространства имен в заголовочный файл. Я захватил стандарт и libstdc ++ заголовки, не нашли анонимных пространств имен независимо одного в tuple заголовок (C++ 1x материал):

  // A class (and instance) which can be used in 'tie' when an element
  // of a tuple is not required
  struct _Swallow_assign
  {
    template<class _Tp>
      _Swallow_assign&
      operator=(const _Tp&)
      { return *this; }
  };

  // TODO: Put this in some kind of shared file.
  namespace
  {
    _Swallow_assign ignore;
  }; // anonymous namespace

Это так, можно сделать

std::tie(a, std::ignore, b) = some_tuple;

, элементам some_tuple присваивают переменные в левой стороне (см. здесь ), подобная техника используется для этот итератор. Второй элемент проигнорирован.

, Но как они говорят, это должно быть помещено в .cpp файл, и один экземпляр должен быть совместно использован всеми пользователями. Они поместили бы объявление его в заголовок как это затем:

extern _Swallow_assign ignore;
15
ответ дан Community 7 November 2019 в 21:55
поделиться

Если бы это - инициализация, это, вероятно, было бы iostream заголовок с (как istream, ios, и т.д.).

0
ответ дан Max Lybbert 7 November 2019 в 21:55
поделиться

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

2
ответ дан Jon Trauntvein 7 November 2019 в 21:55
поделиться
Другие вопросы по тегам:

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