Значения по умолчанию.
От: Kir. Россия  
Дата: 26.10.09 21:02
Оценка:
Подскажите, какой компилятор сможет съесть вот такое:
void F(int x=1, int y=2, int z=3){};
F(,,1); //x=1,y=2,z=1


GCC 4.3.2 и MSVC 2008 — не съедают.
Писание же твое принято бысть и уразумлено внятельно. (С) Иван IV
Re: Значения по умолчанию.
От: Vamp Россия  
Дата: 26.10.09 21:05
Оценка: +1
K>GCC 4.3.2 и MSVC 2008 — не съедают.
По стандарту — никакой.
Да здравствует мыло душистое и веревка пушистая.
Re[2]: Значения по умолчанию.
От: Kir. Россия  
Дата: 26.10.09 21:20
Оценка:
Здравствуйте, Vamp, Вы писали:

K>>GCC 4.3.2 и MSVC 2008 — не съедают.

V>По стандарту — никакой.
Знаю.

Ситуация такая — я веду соответствующий курс у заочников в одном ВУЗе. Один великовозрастный студент в довольно резкой форме настаивал на обратном.

"Утрись стандартом" производит совсем иной педагогический эффект, нежели "В реализации компилятора XX.YY это реализовали(с чем Вы и перепутали), однако стандарт это запрещает и так делать не следует".
Писание же твое принято бысть и уразумлено внятельно. (С) Иван IV
Re: Значения по умолчанию.
От: G65434-2  
Дата: 26.10.09 21:22
Оценка: +1
Здравствуйте, Kir., Вы писали:

K>Подскажите, какой компилятор сможет съесть вот такое:

K>
K>void F(int x=1, int y=2, int z=3){};
K>F(,,1); //x=1,y=2,z=1
K>


K>GCC 4.3.2 и MSVC 2008 — не съедают.


Имхо, никакой, так как это противоречит стандарту.
Re[3]: Значения по умолчанию.
От: Vamp Россия  
Дата: 26.10.09 21:25
Оценка:
K>Ситуация такая — я веду соответствующий курс у заочников в одном ВУЗе. Один великовозрастный студент в довольно резкой форме настаивал на обратном.
Посмотри борланд. Они любят отсебятины намолоть.
Да здравствует мыло душистое и веревка пушистая.
Re[3]: Значения по умолчанию.
От: alexeiz  
Дата: 27.10.09 00:08
Оценка:
Здравствуйте, Kir., Вы писали:

K>"Утрись стандартом" производит совсем иной педагогический эффект


/me визуализировал педагогический эффект "Утрись стандартом, @#$%!"
Re[3]: Значения по умолчанию.
От: Erop Россия  
Дата: 27.10.09 00:43
Оценка:
Здравствуйте, Kir., Вы писали:

K>"Утрись стандартом" производит совсем иной педагогический эффект, нежели "В реализации компилятора XX.YY это реализовали(с чем Вы и перепутали), однако стандарт это запрещает и так делать не следует".


1) IMHO, так делать нехорошо, даже если бы стандарт вдруг позволял. Так как считать запятые в скобочках -- то ещё развлечение...

2) Кстати, что-то как-то мало верится, что такую ерунду кто-то реализовал, так как на самом деле не удобно. Если уж расширять синтаксис, то как-нибудь удобно и красиво Ну там метки аргументов ввести например:
int F( arg1: int = 1, arg2: int = 2 );
F( arg2:5 );
а не это убожество с запятыми. Так что ваш студент что-то другое перепутал скорее всего. Например, его могла сбить с панталыку конструкция вроде такой:
// 1.h
int F(int, int, int = 1);

// 2.h
#include "1.h"
int F(int, int = 2, int);


Ну и позволю себе совет один
3) IMHO, воспитывать великовозрастных людей почти бесполезно, и для этого нужно что-то посильнее курсов по С++
Так что если этот чувак пришёл к вам не учиться, а самоутверждаться, то пусть идёт себе спокойно лесом. Экзаменов он не сдаст, так как дурак (умные не учатся у учителей, которых не уважают), а дальше не ваши проблемы... Можно просто поговорить с ним в том смысле, что вы ресурс, который он может использовать, чтобы чему-то научиться, а может не использовать и не научится... А дальше, IMHO, сугубо его выбор. И нет никакого смысла добиваться каких-то особых "педагогических эффектов". Всё равно ничего, кроме глупого самоутверждения, не добьётесь. Наоборот, если вы будете играть с ним в его игру, он вместо учёбы будет тупо мотать вам нервы всё время...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[4]: Значения по умолчанию.
От: ilvi Россия  
Дата: 27.10.09 02:29
Оценка:
Здравствуйте, Vamp, Вы писали:

K>>Ситуация такая — я веду соответствующий курс у заочников в одном ВУЗе. Один великовозрастный студент в довольно резкой форме настаивал на обратном.

V>Посмотри борланд. Они любят отсебятины намолоть.

Отродясь такого у борланда не было.
Re[4]: Значения по умолчанию.
От: Pavel Dvorkin Россия  
Дата: 27.10.09 07:09
Оценка:
Здравствуйте, Erop, Вы писали:


E>1) IMHO, так делать нехорошо, даже если бы стандарт вдруг позволял. Так как считать запятые в скобочках -- то ещё развлечение...



E>2) Кстати, что-то как-то мало верится, что такую ерунду кто-то реализовал, так как на самом деле не удобно. Если уж расширять синтаксис, то как-нибудь удобно и красиво Ну там метки аргументов ввести например:
int F( arg1: int = 1, arg2: int = 2 );

Так действительно делалось. Но не в С++, а в JCL - языке управления заданиями DOS и OS/360. Там были позиционные параметры и ключевые. Позиционные можно было опускать, но оставлять запятые :-)

// TLBL TAPEFIL,'COPYTAPE.JOB',,,,2


E>F( arg2:5 );
а не это убожество с запятыми. Так что ваш студент что-то другое перепутал скорее всего. Например, его могла сбить с панталыку конструкция вроде такой: [c]// 1.h


А вот это ключевые параметры JCL. Только не через :, а через знак равенства

//MYPROC PROC FNAME=MYFILE01,SPTYPE=TRK,SPINIT=50,SPEXT=10,LR=100,BLK=1000
With best regards
Pavel Dvorkin
Re[2]: Значения по умолчанию.
От: igna Россия  
Дата: 27.10.09 07:47
Оценка:
Здравствуйте, G65434-2, Вы писали:

G2>Имхо, никакой, так как это противоречит стандарту.


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

И даже если бы здесь было противоречие стандарту, откуда уверенность, что противоречащих стандарту компиляторов нет? Уж скорее наоборот, нет непротиворечащих, за исключением может быть одного Comeau, поскольку экспорт шаблонов нигде кроме Comeau не реализован.
Re[3]: Значения по умолчанию.
От: serge.bn  
Дата: 27.10.09 08:32
Оценка: +1
ну так в VB очень даже можно написать
func(,,,"aaaa")

чего шуметь-то? парень, просто не туда попал.
Re[5]: Значения по умолчанию.
От: Erop Россия  
Дата: 27.10.09 10:18
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>А вот это ключевые параметры JCL. Только не через :, а через знак равенства


PD>//MYPROC PROC FNAME=MYFILE01,SPTYPE=TRK,SPINIT=50,SPEXT=10,LR=100,BLK=1000


Ну было много разных языков. Если мы остаёмся всё ещё в рамках "почти С++", то, знак равенства в этом месте уже занят, а конструкция с запятыми крива...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[4]: Значения по умолчанию.
От: igna Россия  
Дата: 27.10.09 10:31
Оценка:
Здравствуйте, serge.bn, Вы писали:

SB>чего шуметь-то? парень, просто не туда попал.


Ты сам-то туда попал? (Непонятно почему ответил на мое сообщение.)
Re[5]: Значения по умолчанию.
От: serge.bn  
Дата: 28.10.09 06:35
Оценка:
Здравствуйте, igna, Вы писали:

I>...Непонятно почему ответил на мое сообщение.

Просто я прочитал последнее сообщение и прибавил к нему еще одно.
Хотя отвечал я, конечно же, на один из первых постов
вот сюда
Kir-"Ситуация такая — я веду соответствующий курс у заочников в одном ВУЗе. Один великовозрастный студент в довольно резкой форме настаивал на обратном."
Вот я и написал, что парень наверное перепутал VB c C++.
Ну, а, если здесь все так серьезно, ну прими мои
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.