Описание тега design-rationale
2
ответа
Почему [line in open("text.txt")] приводит к переводу строки?
(примечание: я не пытаюсь ничего изменить - просто пытаюсь понять) Рассматривая решения для чтения в файле на python, каждый раз, когда символ новой строки должен быть удален: In [5]: [line for line in open("text.txt", "r")] Out[5]: ['line1\n', 'lin…
22 янв '16 в 14:05
4
ответа
Почему в стандартной библиотеке есть find и find_if?
Не удалось find_if просто быть перегрузкой find? Вот как std::binary_search и друзья делают это...
20 авг '10 в 17:16
2
ответа
В чем разница между FilterWriter и Writer в Java?
Из https://docs.oracle.com/javase/7/docs/api/java/io/Writer.html и https://docs.oracle.com/javase/7/docs/api/java/io/FilterWriter.html, я считаю, что FilterWriter абстрактный класс, который расширяет Writer и не имеет никаких дополнительных способов…
03 авг '16 в 04:32
4
ответа
Почему типы параметров не могут быть ослаблены в переопределенных методах?
Этот код недействителен: interface Foo { public void foo(final String string); } public class Bar implements Foo { // Error: does not override. @Override public void foo(final Object object) { } } Потому что каждый String очевидно, ObjectЯ бы ожидал…
09 апр '12 в 00:58
1
ответ
Ссылка на значение пустого необязательного
Я видел следующую картину несколько раз: // T is a type, this is at namespace scope std::aligned_storage_t<sizeof(T), alignof(T)> storage; T &t = reinterpret_cast<T &>(storage); Это, в сочетании с адекватным пространством имен и …
26 дек '17 в 10:45
2
ответа
Почему модули явно названы в файлах?
Из ссылки на язык D: Модули имеют непосредственное соответствие с исходными файлами. Имя модуля - это имя файла с удаленным путем и расширением. Имена модулей по-прежнему указываются в файлах явно. module foo; какой в этом смысл? Если модули соотв…
23 сен '11 в 00:15
3
ответа
Почему std:: set<K, C, A>:: erase не берет const_iterator?
Похоже, что в соответствии с ISO 14882 2003 (он же Священный Стандарт C++) std::set<K, C, A>::erase принимает iterator в качестве параметра (не const_iterator) из 23.3.3 [2] void erase(iterator position); Также следует отметить, что в моей реа…
13 июл '11 в 19:52
3
ответа
Delphi: Что такое Application.Handle?
Что такое TApplication.Handle? Откуда это взялось? Почему это существует? И самое главное: почему все формы имеют его в качестве дескриптора родительского окна? Помощь Delphi гласит: TApplication.Handle Предоставляет доступ к дескриптору окна основн…
05 фев '10 в 03:16
2
ответа
Почему для частичной специализации в нетиповом аргументе запрещено использовать параметры вложенного шаблона
У меня есть этот код template<int N, bool C = true> struct A; template<int N> struct A<N, !(N % 5)> { /* ... */ }; // should work A<25> a; То есть для чисел N которые делятся на 5Компилятор должен использовать частичную специ…
12 май '11 в 13:23
1
ответ
Вариант использования для std:: обещание::set_{значение | исключение}_at_thread_exit
Когда я должен использовать std::promise::set_value_at_thread_exit / std::promise::set_exception_at_thread_exit над std::promise::set_value / std::promise::set_exception? Единственное отличие состоит в том, что первые гарантируют, что связанное буду…
20 мар '17 в 12:15
13
ответов
Почему оператор std::map [] создает объект, если ключ не существует?
Я почти уверен, что где-то уже видел этот вопрос (comp.lang.C++? Google, похоже, тоже его там не находит), но быстрый поиск здесь, похоже, не находит его, вот он: Почему оператор std::map [] создает объект, если ключ не существует? Я не знаю, но для…
28 окт '09 в 19:30
2
ответа
Почему drand48() и друзья устарели?
В конце концов, они кажутся лучше стандартного libc rand(). Я что-то пропустил? (Я потратил некоторое время на поиск этого в Интернете, и единственный другой пример этого вопроса, который я мог найти, был в контексте предвзятости распределения и ост…
12 авг '14 в 16:26
7
ответов
Почему C#(или.NET) не должны позволять нам помещать статический / разделяемый метод в интерфейс?
Почему C#(или.NET) не должны позволять нам помещать статический / разделяемый метод в интерфейс? казалось бы, дубликат отсюда. но моя идея немного отличается, я просто хочу добавить помощника для моих плагинов (интерфейс) не должен ли C# хотя бы доп…
30 июн '09 в 08:39
3
ответа
Почему opAssign не перегружается для классов?
Эта таблица говорит, что перегрузка присваивания возможна только для структур, но не для классов. Это удивляет меня. Не является ли синтаксический сахар A = B безвредны? Каково было обоснование дизайна для ограничения его структурами?
06 дек '11 в 22:57
2
ответа
Каково обоснование использования спецификации доступа для метода / поля?
В C++ спецификатор доступа для поля или метода основан на его расположении в соответствии с первой ранее объявленной спецификацией доступа: public: int my_public_variable; private: void secretPrivateOperations(); int internal_counter; Каково логичес…
29 сен '15 в 22:25
2
ответа
Почему у std::basic_ios есть открытый конструктор?
std::basic_iosимеет публичный конструктор: explicit basic_ios (std::basic_streambuf<CharT,Traits>* sb); ИМО, единственная причина, по которой у класса есть общедоступный конструктор, - это использование автономного экземпляра этого класса в пр…
26 ноя '19 в 19:10
2
ответа
В чем причина исключения копирования в C++?
По какой причине стандарт C++ позволяет (требует) компиляторам оптимизировать вызовы конструктора копирования (в определенных случаях), даже если он может содержать наблюдаемые побочные эффекты? Если я не ошибаюсь, правило "как будто" уже позволяет …
30 ноя '20 в 00:55
2
ответа
IEEE 754: обоснование формата: субнормальные и нормальные числа
Может кто-нибудь уточнить: Почему именно формат субнормальных чисел ±(0.F) × 2^-126 и нет ±(1.F) × 2^-127? Почему именно формат нормальных чисел такой: ±(1.F) × 2^exp а не, скажем, ±(11.F) × 2^exp, или, скажем, ±(10.F) × 2^exp?
09 апр '21 в 11:43
3
ответа
Почему библиотека fmt не предназначена только для заголовков?
Я знаю, что можно использовать fmt библиотека форматирования в режиме только заголовков: Как использовать библиотеку fmt в режиме только заголовка? но - почему это не только заголовок, точка? То есть в чем преимущество использования его в режиме без…
15 июн '21 в 23:32
2
ответа
Требуется ли преобразование реального числа с плавающей точкой в целое число, чтобы значение было усечено до нуля, чтобы облегчить перенос кода с Фортрана на C?
C11, 6.3.1.4 Действительное число с плавающей запятой и целое число: Когда конечное значение реального плавающего типа преобразуется в целочисленный тип, отличный от _Bool, дробная часть отбрасывается (т. Е. Значение обрезается до нуля). Каково обос…
02 сен '21 в 20:37