LINUX.ORG.RU

История изменений

Исправление kvpfs, (текущая версия) :

Если у тебя кольцевые зависимости (а это довольно часто бывает в сложных структурах)

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

Пардон, ты пишешь весь свой код на shared_ptr + weak_ptr? Тогда я тебе разочарую — у тебя говнокод.

Есть ли аргументы против кроме фантазий?

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

Неужели мастер не осилил?

struct Q {
  Q(int *error_code) {
     ...
     *error_code = 4;
  }
};

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

Это один идентификатор типа, если что.

Для пущего эффекта в следующий раз пости это:

namespace shit {
	namespace crap {
		template <typename CharT,
				 typename Traits,
				 typename Alloc,
				 typename Out_of_hate,
				 typename Die,
				 typename Fucked_shit,
				 typename Placeholder
		using fucked_shit_std_cpp_basic_string = std::basic_string<CharT, 
				Traits, Alloc>;
	}
}

std::map<shit::crap::fucked_shit_std_cpp_basic_string<char,
	std::char_traits<char>, std::allocator<char>, unsigned long long,
	unsigned long long, unsigned long long, unsigned long long>,
	...>;

Это только первый параметр шаблон, если что ).

Исходная версия kvpfs, :

Если у тебя кольцевые зависимости (а это довольно часто бывает в сложных структурах)

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

Пардон, ты пишешь весь свой код на shared_ptr + weak_ptr? Тогда я тебе разочарую — у тебя говнокод.

Есть ли аргументы против кроме фантазий?

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

Неужели мастер не осилил?

struct Q {
  Q(int *error_code) {
     ...
     *error_code = 4;
  }
};

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

Это один идентификатор типа, если что.

Для пущего эффект в следующий раз пости это:

namespace shit {
	namespace crap {
		template <typename CharT,
				 typename Traits,
				 typename Alloc,
				 typename Out_of_hate,
				 typename Die,
				 typename Fucked_shit,
				 typename Placeholder
		using fucked_shit_std_cpp_basic_string = std::basic_string<CharT, 
				Traits, Alloc>;
	}
}

std::map<shit::crap::fucked_shit_std_cpp_basic_string<char,
	std::char_traits<char>, std::allocator<char>, unsigned long long,
	unsigned long long, unsigned long long, unsigned long long>,
	...>;

Это только первый параметр шаблон, если что ).