Ошибки, баги, вопросы - страница 3385

 
fxsaber #:

Вам смысл непонятен?! Возьмите "класс" в кавычки, "namespace" или другое имя. Не могут "user32.dll" и "User32.dll" родить два скопа.

А почему не могут? Почему принципиально нельзя одной .dll два скопа в соответствие поставить?

 
A100 #:

А почему не могут?

Потому что архитектурно решили, что больше одного скопа на одну DLL делать - лишнее.

Что не сделано, так это насильное приведение всех названий #import-библиотек к одному регистру.


Ренат сообщил, чем будет MQ заниматься ближайший год. Точнее, чем кто-то пропланировал заниматься. Время показывает, что все это вилами по воде.

К чему? Невозможно понять логику приоритетов исправлений и планов. Что-то правят сразу, что-то - годами не правят. Так и с планами. Ничего не понять и не спланировать.

Есть, как есть.

[Удален]  
fxsaber #:

Потому что результат typename зависит, например, от const-модификатора метода, в котором идет вызов.

Тогда так:

class BASE
{
public:  
  virtual string GetObjectClassName() { return "BASE"; }
};

class CLASS1 : public BASE
{
public:  
  virtual string GetObjectClassName() { return "CLASS1"; }
};
 
Тиковый график стаканаСтранное поведение тикового графика в стакане
 
Koldun Zloy #:

Тогда так:

Мне проще макрос-копипасту делать. Но это все равно костыль MQ.

[Удален]  
fxsaber #:

Мне проще макрос-копипасту делать. Но это все равно костыль MQ.

На этом форуме почему-то принято называть костылём всё что захочется. Когда считают, что MQ должны были что-то написать за них.

Костылём называется решение, которое чем-то ограничено, работает только в определённых условиях.

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

А это вполне рабочий код, который работает всегда и делает то что Вам нужно.

Я, например, не хочу платить эффективностью за сохранение информации о типах после компиляции.

 
Koldun Zloy #:

На этом форуме почему-то принято называть костылём всё что захочется. Когда считают, что MQ должны были что-то написать за них.

Костылём называется решение, которое чем-то ограничено, работает только в определённых условиях.

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

А это вполне рабочий код, который работает всегда и делает то что Вам нужно.

Я, например, не хочу платить эффективностью за сохранение информации о типах после компиляции.

Еще добавлю

"Костыль" - назыают некое временное порой не очень красивое решение.

Бывает "золотой костыль" - это когда "костыльное"  решение весьма красиво.  

Самое ужасно что порой костыли живут очень долго, иногда до самой смерти самого ПО.

 
Koldun Zloy #:

Я, например, не хочу платить эффективностью за сохранение информации о типах после компиляции.

Доказательство, что это есть сейчас.

class A {};
class B : public A {};
class C : public A {};

void OnStart()
{
  A* a = new B;
  
  Print(dynamic_cast<B*>(a) != NULL); // true
  Print(dynamic_cast<C*>(a) != NULL); // false
  
  delete a;
}
[Удален]  
fxsaber #:

Доказательство, что это есть сейчас.

dynamic_cast всего лишь сравнивает указатели на таблицу виртуальных функций. Ничего о типах он не знает.

 
Koldun Zloy #:

dynamic_cast всего лишь сравнивает указатели на таблицу виртуальных функций. Ничего о типах он не знает.

Вы вышли из зоны моей компетентности, поэтому не могу комментировать.