Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 08.09.2011, 15:46   #1
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
mutable volatile extern register auto typename explicit

Небольшой список "экзотических" ключевых слов (virtual, static и компания сюда не относятся ) с описаниями. Если по одной ссылке (на мой взгляд) сложно составить мнение о команде или рассказывается лишь одна область применения, то указаны несколько источников

mutable
http://www.quizful.net/post/cpp-keywords-usage
http://alenacpp.blogspot.com/2005/10...constcast.html

volatile
http://www.quizful.net/post/cpp-keywords-usage
http://alenacpp.blogspot.com/2006/04/volatile.html

extern
http://www.quizful.net/post/cpp-keywords-usage
http://www.sbp-program.ru/SBP-C-Memory-Class.htm#extern
http://www.gamedev.ru/code/forum/?id=56367

register
http://www.quizful.net/post/cpp-keywords-usage

auto
http://www.quizful.net/post/cpp-keywords-usage

typename
http://alenacpp.blogspot.com/2006/08/typename.html

explicit
http://jia3ep.blogspot.com/2008/07/e...nstructor.html
http://alenacpp.blogspot.com/2009/09/blog-post.html

const_cast
http://alenacpp.blogspot.com/2005/10...constcast.html
http://alenacpp.blogspot.com/2005/08/c.html

reinterpret_cast
http://alenacpp.blogspot.com/2005/08/c.html

dynamic_cast
http://alenacpp.blogspot.com/2005/08/c.html
http://ru.wikipedia.org/wiki/Dynamic_cast

static_cast
http://alenacpp.blogspot.com/2005/08/c.html
http://www.rsdn.ru/article/cpp/static_cast.xml
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Эти 6 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
ABTOMAT (08.09.2011), ANIK123 (16.11.2011), Mhyhr (08.09.2011), moka (08.09.2011), Mr_F_ (09.09.2011), SBJoker (08.09.2011)
Старый 08.09.2011, 18:45   #2
falcon
Разработчик
 
Аватар для falcon
 
Регистрация: 12.07.2008
Сообщений: 523
Написано 196 полезных сообщений
(для 470 пользователей)
Ответ: mutable volatile extern register auto typename explicit

имхо - тут ничего экзотического..
C-style касты в плюсовом коде юзать моветон, так что плюсовые касты ну никак не экзотические..
спецификаторы вроде тоже штука не экзотическая и встречается часто.. ну вот volatile да, не все знают. И то, в куче чтива о потокобезопасных синглтонах на него ссылаются..
вот export - риально экзотика.. да ещё какая :D
(Offline)
 
Ответить с цитированием
Старый 08.09.2011, 20:54   #3
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: mutable volatile extern register auto typename explicit

экспорт такая экзотика, что в каждом проекте DLL встречается.
Потокобезопасных синглтонов по сути не бывает: можно сделать грязный хак, который не на каждом компиляторе запустится.
Ну я тоже могу обосрать - мало не покажется (жаль только время тратить).
имхо..
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 08.09.2011, 21:32   #4
ffinder
Дэвелопер
 
Аватар для ffinder
 
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений
(для 1,460 пользователей)
Ответ: mutable volatile extern register auto typename explicit

последние четыре выбрасывай, все cast'ы плюсовые явно не редкость в коде.
(Offline)
 
Ответить с цитированием
Старый 08.09.2011, 21:34   #5
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: mutable volatile extern register auto typename explicit

Сообщение от ffinder Посмотреть сообщение
последние четыре выбрасывай, все cast'ы плюсовые явно не редкость в коде.
у кого-то и goto не редкость. Понятное дело, что список весьма условный.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 08.09.2011, 21:34   #6
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: mutable volatile extern register auto typename explicit

Опа, за volatile спасибо, на самом деле нужная штука, т.к. в C# много приходится с потоками работать, и ловил такую проблему, где цикл в потоке нужно было отменять, но не грубо, а лишь заставить его закончиться, вот тут и была проблема, теперь не будет
(Offline)
 
Ответить с цитированием
Старый 08.09.2011, 21:49   #7
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Ответ: mutable volatile extern register auto typename explicit

а в чём смысл auto ? (не очень понял) (не которое появилось в c++11, а которое сейчас)
(Offline)
 
Ответить с цитированием
Старый 08.09.2011, 21:49   #8
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: mutable volatile extern register auto typename explicit

auto душевен в C++0x. а раньше был не нужен, да. по сути семантика auto это значит, что переменная объявляется в стеке. но она итак объявляется в стеке без всяких дополнительных слов.
mutable нужен для кеширования результата.
explicit тоже нужен часто.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
den (08.09.2011)
Старый 08.09.2011, 21:58   #9
falcon
Разработчик
 
Аватар для falcon
 
Регистрация: 12.07.2008
Сообщений: 523
Написано 196 полезных сообщений
(для 470 пользователей)
Ответ: mutable volatile extern register auto typename explicit

Ну я тоже могу обосрать - мало не покажется (жаль только время тратить).
я в общем-то и не обсирал тебя.

экспорт такая экзотика, что в каждом проекте DLL встречается.
http://ru.wikipedia.org/wiki/C%2B%2B...2.D0.BE_export

чочо, прям в каждой длл-ке такой export для шаблонов есь??..
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо falcon за это полезное сообщение:
HolyDel (08.09.2011), impersonalis (08.09.2011)
Старый 08.09.2011, 22:20   #10
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: mutable volatile extern register auto typename explicit

пардон, прочитал (и далее осознавал) как extern
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 08.09.2011, 22:50   #11
.Squid
Дэвелопер
 
Аватар для .Squid
 
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений
(для 4,642 пользователей)
Ответ: mutable volatile extern register auto typename explicit

Сообщение от HolyDel Посмотреть сообщение
mutable нужен для кеширования результата.
Поясни.
__________________

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Mr_F_ (09.09.2011)
Старый 08.09.2011, 23:38   #12
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: mutable volatile extern register auto typename explicit

class Node
mutable mat4 localmatrix;
...
const mat4& getLocalMatrix() const;
....
const mat4& getLocalMatrix() const
{
if(need_reaclc)
localmatrix = CalcLocalMatrix(position,orient,scale);
return localmatrix;
}
(Offline)
 
Ответить с цитированием
Старый 08.09.2011, 23:45   #13
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: mutable volatile extern register auto typename explicit

иными словами - изменение члена класса (с идентификатором mutable) даже из const-метода (что и написано по ссылкам)
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 09.09.2011, 00:15   #14
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: mutable volatile extern register auto typename explicit

class Node
mutable mat4 localmatrix;
...
const mat4& getLocalMatrix() const;
....
const mat4& getLocalMatrix() const
{
if(need_reaclc)
localmatrix = CalcLocalMatrix(position,orient,scale);
return localmatrix;
}
я не вкурил. какой смысл в const в функциях? что нельзя будет полученную матрицу менять, взяв её через getLocalMatrix? а mutable делает, что всё-таки можно менять? но ТОЛЬКО внутри объекта-носителя mutable данных?
как это связано с выражением "кеширование результата"?
(Offline)
 
Ответить с цитированием
Старый 09.09.2011, 00:24   #15
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: mutable volatile extern register auto typename explicit

Холи привёл конкретный (частный) пример использования.
я не вкурил. какой смысл в const в функциях? что нельзя будет полученную матрицу менять, взяв её через getLocalMatrix? а mutable делает, что всё-таки можно менять?
конст-функция не изменяет члены класса, кроме тех, что объявлены с mutable (при попытке изменить неmutable член в конст-функции компилятор запротестует).
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Mr_F_ (09.09.2011)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 22:35.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com