Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Всем забить на правило Кенига;)  (Прочитано 12152 раз)
0 Пользователей и 1 Гость смотрят эту тему.
LP
Помогающий

ru
Offline Offline

« : 12-06-2005 11:39 » 

Прочитал в книге Джосьютисса про STL следующее:
Цитата
Если какие-либо типы аргументов определены в пространстве имен,
в котором определена функция, то при вызове функции уточнять
пространство имен не обязательно (т.н. правило Кенига).

Проверил на своих компиляторах - ни фига не работает (BC++B 6.0; MSVC 7.1)

Посмотрел в стандарте [раздел basic.lookup.koenig] - действительно то же самое написано
и пример приведен:
Код:
namespace NS
{
class T{};
void f(T);
}

NS::T parm;
int main(){
f(parm);//OK: calls NS::f
}
Но опять-таки у меня не работает.
Записан

Если эта надпись уменьшается, значит ваш монитор уносят
Михалыч
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 13-06-2005 13:23 » 

А зачем забивать? Улыбаюсь
Проще и не надеяться на него... И все дела Улыбаюсь
Стандарт языка - это как недостижимая вершина. К ней можно только стремиться, а залезть нельзя, увы. Улыбаюсь Тем более, ее (вершину в смысле) все время подсыпают повыше Улыбаюсь
Так что нет, IMHO, ни одного копилятора на все 100% соответствующего стандарту. И не будет никогда, наверное. А уж при попытках писать нечто, что может в перспективе компилироваться разными компиляторами, да под разные платформы... Тут про какие-либо Кениго-подобные правила надо забыть. (Ха! Почти как у LP - "забить")
Записан

Поживем - увидим... Доживем - узнаем... Выживу - учту  Улыбаюсь
Earnest
Гость
« Ответ #2 : 16-06-2005 16:30 » 

Прекрасно компилируется в MS VC++.NET! И вообще, они весьма к стандарту продвинулись...
Записан
NetRaider
Гость
« Ответ #3 : 05-07-2005 04:56 » 

Цитата
Так что нет, IMHO, ни одного копилятора на все 100% соответствующего стандарту. И не будет никогда, наверное. А уж при попытках писать нечто, что может в перспективе компилироваться разными компиляторами, да под разные платформы... Тут про какие-либо Кениго-подобные правила надо забыть. (Ха! Почти как у LP - "забить")

Ну почему же забыть...
Koenig lookup для операторов VC6 полностью поддерживает,
а VC7.1 прекрасно компилирует приведенный автором топика пример.
Записан
Михалыч
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 05-07-2005 13:59 » 

А что - жизнь в компьютерном мире с каких-то пор ограничена платформой х86 и VC6, VC7.1 Не понял??
Речь-то шла - компилироваться разными компиляторами, да под разные платформы...
Записан

Поживем - увидим... Доживем - узнаем... Выживу - учту  Улыбаюсь
NetRaider
Гость
« Ответ #5 : 11-07-2005 02:35 » new

А что - жизнь в компьютерном мире с каких-то пор ограничена платформой х86 и VC6, VC7.1 Не понял??
Речь-то шла - компилироваться разными компиляторами, да под разные платформы...

В первом посте явно был упомянут MSVC 7.1, в связи с чем я и упомянул VC6
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines