Re[5]: Вызов инициализирующего кода вне конструктора
От: Chorkov Россия  
Дата: 18.08.14 11:13
Оценка: 1 (1)
Здравствуйте, glap, Вы писали:

G>Интересно почему этот приём не работает с шаблонными классами для каждой инстанциации. MSVC.


Потому что MSVC интсанционирует только те члены шаблонного класса, которые где-либо вызываются.
Метод initializer вызывается исключительно сам из себя.
Ваш Кэп.
Re[6]: Вызов инициализирующего кода вне конструктора
От: glap  
Дата: 18.08.14 11:18
Оценка:
Здравствуйте, Chorkov, Вы писали:

C>Здравствуйте, glap, Вы писали:


G>>Интересно почему этот приём не работает с шаблонными классами для каждой инстанциации. MSVC.


C>Потому что MSVC интсанционирует только те члены шаблонного класса, которые где-либо вызываются.

C>Метод initializer вызывается исключительно сам из себя.
C>Ваш Кэп.

Да, точно. Там же у них самодеятельность народная.
Re[3]: Вызов инициализирующего кода вне конструктора
От: Abyx Россия  
Дата: 18.08.14 13:09
Оценка:
Здравствуйте, glap, Вы писали:

G>Здравствуйте, Abyx, Вы писали:


A>>Здравствуйте, glap, Вы писали:


G>>>П.С.

G>>>C++0x11 не доступен.
A>>что если С++17 не доступен, то уж 14 или 11-то доступны? так там NSDMI есть

G>За что минус влепил? Ещё и бред какой-то написав в ответ.

G>Мне недоступен современный цпп. Тебе очень интересно причина или к чему это написано?

ну да, ты написал что тебе не доступен С++17.
ок, но есть же предыдущие версии, например С++11
In Zen We Trust
Re[4]: Вызов инициализирующего кода вне конструктора
От: watchmaker  
Дата: 18.08.14 13:34
Оценка: 1 (1) +1 :)
Здравствуйте, Abyx, Вы писали:

A>Здравствуйте, glap, Вы писали:


G>>>>C++0x11 не доступен.


G>>За что минус влепил? Ещё и бред какой-то написав в ответ.


A>ну да, ты написал что тебе не доступен С++17.


А-ха-ха. Если посчитать, что число в подстроке C++0x11 записано в 16-ричной системе счисления, то получится C++17 в десятичной. Отличная шутка! Зануда.
Re[8]: Вызов инициализирующего кода вне конструктора
От: Vain Россия google.ru
Дата: 18.08.14 18:48
Оценка:
Здравствуйте, glap, Вы писали:

V>>Как обычно делают? Обычно деляют либо инициализацию по вызову функции со статической переменной, либо, ещё лучше, явную инициализацию всего одним явным вызовом по принципу "либо всё, либо ничего", чтобы можно было перенести/пересортировать вызовы различных инициализаций в нужном месте. Такое если выстрелет, то сразу в голову без всяких прилюдий.

G>Наверное надо отталкиваться от задачи, а не от каких-то эфемерных подводных камней. Моя задача так решается и избавляет меня от необходиомости для каждого класса, коих больше сотни, писать инициализацию из другого модуля. Забыть её сделать реальная опасность, а ваша выдуманная, т.к. вне контекста.
Ну вот кожда ногу себе прострелишь, вот тогда и подхрамывай на форум.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[9]: Вызов инициализирующего кода вне конструктора
От: glap  
Дата: 18.08.14 19:57
Оценка:
Здравствуйте, Vain, Вы писали:

V>Здравствуйте, glap, Вы писали:


V>>>Как обычно делают? Обычно деляют либо инициализацию по вызову функции со статической переменной, либо, ещё лучше, явную инициализацию всего одним явным вызовом по принципу "либо всё, либо ничего", чтобы можно было перенести/пересортировать вызовы различных инициализаций в нужном месте. Такое если выстрелет, то сразу в голову без всяких прилюдий.

G>>Наверное надо отталкиваться от задачи, а не от каких-то эфемерных подводных камней. Моя задача так решается и избавляет меня от необходиомости для каждого класса, коих больше сотни, писать инициализацию из другого модуля. Забыть её сделать реальная опасность, а ваша выдуманная, т.к. вне контекста.
V>Ну вот кожда ногу себе прострелишь, вот тогда и подхрамывай на форум.

А ещё очень опасно использовать операцию деления. Коварный ноль смотрит на деление в твоём коде с ухмылкой. Когда прострелите себе ногу, не приходите на форум, лечите ногу.
Re[10]: Вызов инициализирующего кода вне конструктора
От: Vain Россия google.ru
Дата: 19.08.14 07:47
Оценка:
Здравствуйте, glap, Вы писали:

V>>>>Как обычно делают? Обычно деляют либо инициализацию по вызову функции со статической переменной, либо, ещё лучше, явную инициализацию всего одним явным вызовом по принципу "либо всё, либо ничего", чтобы можно было перенести/пересортировать вызовы различных инициализаций в нужном месте. Такое если выстрелет, то сразу в голову без всяких прилюдий.

G>>>Наверное надо отталкиваться от задачи, а не от каких-то эфемерных подводных камней. Моя задача так решается и избавляет меня от необходиомости для каждого класса, коих больше сотни, писать инициализацию из другого модуля. Забыть её сделать реальная опасность, а ваша выдуманная, т.к. вне контекста.
V>>Ну вот кожда ногу себе прострелишь, вот тогда и подхрамывай на форум.
G>А ещё очень опасно использовать операцию деления. Коварный ноль смотрит на деление в твоём коде с ухмылкой. Когда прострелите себе ногу, не приходите на форум, лечите ногу.
деление на ноль не вызывает расстрел памяти
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[11]: Вызов инициализирующего кода вне конструктора
От: jazzer Россия Skype: enerjazzer
Дата: 19.08.14 08:12
Оценка: :)
Здравствуйте, Vain, Вы писали:

V>деление на ноль не вызывает расстрел памяти


array[a/b] = 3.1415;

jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[12]: Вызов инициализирующего кода вне конструктора
От: Vain Россия google.ru
Дата: 19.08.14 22:20
Оценка:
Здравствуйте, jazzer, Вы писали:

V>>деление на ноль не вызывает расстрел памяти

J>
J>array[a/b] = 3.1415;
J>

J>
Это не настоящий "расстрел памяти". Настоящий это когда переменная мусором инициализирована в релизе.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.