Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перегруженные функции 
:(
    Опции темы
tofreesky
Дата 20.7.2010, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 9.6.2010

Репутация: нет
Всего: нет



Как лучше поступить?

Изначально есть одна функция с тремя аргументами.

void func(DWORD arg1, DWORD arg2, DWORD arg3)
{

}

Каждый из аргументов должен быть, либо числом либо указателем на char строку.

Не использовать же девять перегруженных функций? Как лучше поступить?
Проверять входящий аргумент на возможность указателя?
PM MAIL   Вверх
djamshud
Дата 20.7.2010, 12:40 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 8
Всего: 39



Например можно так:

Код

struct some{
int type;
union{
size_t data;
char *ptr;}value;
};


Передавать три аргумента struct some и по type смотреть, что это. Еще можно отказаться от велосипедика и воспользоваться variant-ами. Еще вариант - пересмотреть структуру программы.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
azesmcar
Дата 20.7.2010, 12:50 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



используй шаблоны
PM   Вверх
tofreesky
Дата 20.7.2010, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 9.6.2010

Репутация: нет
Всего: нет



Цитата(azesmcar @ 20.7.2010,  12:50)
используй шаблоны

Можно пример? Еще не работал с этим.
PM MAIL   Вверх
Abyx
Дата 20.7.2010, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 601
Регистрация: 3.11.2009

Репутация: 1
Всего: 10



Цитата(tofreesky @  20.7.2010,  12:31 Найти цитируемый пост)
Проверять входящий аргумент на возможность указателя? 

для чисел можно выставлять старший разряд (или делать число отрицательным), у указателей он всегда равен нулю

Добавлено через 43 секунды
Цитата(tofreesky @  20.7.2010,  13:02 Найти цитируемый пост)
Можно пример?

пример зависит от тела функции
PM MAIL   Вверх
djamshud
Дата 20.7.2010, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 8
Всего: 39



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


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
azesmcar
Дата 20.7.2010, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Цитата(djamshud @  20.7.2010,  13:06 Найти цитируемый пост)
Шаблоны слабо помогут, когда возможна куча сочетаний разнотипных параметров с различной логикой их обработки. 

если логика различна - тогда можно использовать специализацию..в общем-то
Цитата(Abyx @  20.7.2010,  13:04 Найти цитируемый пост)
пример зависит от тела функции 


не понятно как именно должны обрабатываться эти параметры, одинаково или по разному?
PM   Вверх
djamshud
Дата 20.7.2010, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 8
Всего: 39



char*. int, int
int, char*, char*
char*, int, char*
...

Все случаи специализировать?


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
azesmcar
Дата 20.7.2010, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Цитата(djamshud @  20.7.2010,  13:10 Найти цитируемый пост)
Все случаи специализировать? 

а что, для всех нужно разное поведение? тогда да, нужно же где-то это поведение описать, хотя в таком случае шаблоны и не нужны, обычная перегрузка вполне сойдет.
PM   Вверх
djamshud
Дата 20.7.2010, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 8
Всего: 39



Если я правильно понял, у человека три параметра, каждый из которых может реально быть двух типов - инт и указатель на строку. Что перегрузки, что специализация шаблонов - это куча копипасты.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
azesmcar
Дата 20.7.2010, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Цитата(djamshud @  20.7.2010,  13:20 Найти цитируемый пост)
Если я правильно понял, у человека три параметра, каждый из которых может реально быть двух типов - инт и указатель на строку. Что перегрузки, что специализация шаблонов - это куча копипасты. 

если человеку нужно 9 разных поведений функции то их придется писать, в функциях, в if-е, в switch-case, как угодно, не важно, а в другом случае шаблоны помогут избежать ненужных перегрузок (точнее сгенерируют их сами).
PM   Вверх
djamshud
Дата 20.7.2010, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 8
Всего: 39



Поведение то одинаковое. Просто входные данные разнотипные. И шаблон с восемью специализациями только ради описания входного типа - жесточайший оверхед в плане кодонаписания.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
boostcoder
Дата 20.7.2010, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



при использовании boost.mpl, порядок аргументов не имеет значения.
PM WWW   Вверх
mrbrooks
Дата 20.7.2010, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 2
Всего: 306



boostcoder, ога. при условии что, TC не знаком с шаблонами, я уже угадываю следующий его вопрос.
PM MAIL   Вверх
boostcoder
Дата 20.7.2010, 13:44 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



...и с boost.fusion тоже

Добавлено @ 13:46
Цитата(mrbrooks @  20.7.2010,  13:42 Найти цитируемый пост)
ога. при условии что, TC не знаком с шаблонами, я уже угадываю следующий его вопрос.

собственно этот ответ адресован azesmcar и djamshud. спорят ни о чем smile

Добавлено через 8 минут и 34 секунды
Цитата(azesmcar @  20.7.2010,  13:22 Найти цитируемый пост)
если человеку нужно 9 разных поведений функции то их придется писать, в функциях, в if-е, в switch-case, как угодно, не важно, а в другом случае шаблоны помогут избежать ненужных перегрузок (точнее сгенерируют их сами).

так держать! рационально мыслите.


djamshud, немного проанализировав ваши посты, пришел к умозаключению, что ваш стиль написания кода, называется "Си с классами." прям 90еы..ужос.. smile 

Это сообщение отредактировал(а) boostcoder - 20.7.2010, 13:46
PM WWW   Вверх
borisbn
Дата 20.7.2010, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Если char * - это строковое представление числа ( типа char*("123") вместо DWORD(123) ), то можно написать 2 шаблонные функции преобразования аргумента в число:
Код

template< typename T > int toInt( T x ) { assert( 0 ); return 0; }
template<> int toInt< const char * >( const char * x ) {
    return atoi( x );
}
template<> int toInt< int >( int x ) {
    return x;
}

и далее

template< typename T1, typename T2, typename T3 > 
void func( T1 t_arg1,  T2 t_arg2, T3 t_arg3) {
int arg1 = toInt( t_arg1 );
int arg2 = toInt( t_arg2 );
int arg3 = toInt( t_arg3 );
}




--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Abyx
Дата 20.7.2010, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 601
Регистрация: 3.11.2009

Репутация: 1
Всего: 10



borisbn, для этого есть lexical_cast
PM MAIL   Вверх
azesmcar
Дата 20.7.2010, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Цитата(djamshud @  20.7.2010,  13:26 Найти цитируемый пост)
Поведение то одинаковое. Просто входные данные разнотипные. И шаблон с восемью специализациями только ради описания входного типа - жесточайший оверхед в плане кодонаписания. 

я и не предлагал писать 8 специализаций ради одной реализации, одной реализации с шаблонами вполне достаточно.
PM   Вверх
djamshud
Дата 20.7.2010, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 8
Всего: 39



>djamshud, немного проанализировав ваши посты, пришел к умозаключению, что ваш стиль написания кода, называется "Си с классами." прям 90еы..ужос..

Мой стиль - это "скрипты и си с классами, наследованиями, RTTI и шаблонами". А желание пихать шаблоны с бустом куда ни попадя - это симптом (не, ну метапрограммирование - это же так по-европейски, да и вообще как ни крути - просто ###ись), часто говорящий, что человек для решения задачи (и самое главное - выражения своих мыслей) использует немного не тот язык. Диагноз ставить не буду - не доктор:).

Добавлено через 1 минуту и 50 секунд
>я и не предлагал писать 8 специализаций ради одной реализации, одной реализации с шаблонами вполне достаточно.

Хм, ну вот я хоть убей не сображу, как это сделать. Как я понимаю, задача не в lexical_cast'e.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
azesmcar
Дата 20.7.2010, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Цитата(djamshud @  20.7.2010,  14:15 Найти цитируемый пост)
Хм, ну вот я хоть убей не сображу, как это сделать

вообще-то довольно просто
Код

template <class A1, class A2, class A3> 
void foo(A1 a1, A2 a2, A3 a3)
{
    std::cout << a1 << a2 << a3 << std::endl;
}

я не думаю, что это необходимо, но если вдруг очень нужно, чтобы функция работала именно для char* и short (или что-то там еще) то этого тоже довольно легко добиться добавив static assert.
Код

template <typename T> struct mytype { enum { check = 0 }; };
template <> struct mytype<const char*> { enum { check = 1 }; };
template <> struct mytype<short> { enum { check = 1 }; };

template <class A1, class A2, class A3> 
void foo(A1 a1, A2 a2, A3 a3)
{
    BOOST_STATIC_ASSERT(mytype<A1>::check == 1);
    BOOST_STATIC_ASSERT(mytype<A2>::check == 1);
    BOOST_STATIC_ASSERT(mytype<A3>::check == 1);

    std::cout << a1 << a2 << a3 << std::endl;
}


PM   Вверх
djamshud
Дата 20.7.2010, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 8
Всего: 39



azesmcar, эммм... Я думаю, ТС хочет чего-то большего, чем просто распечатать аргументы. В общем нужно узнать, что именно делает его функция.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
azesmcar
Дата 20.7.2010, 14:49 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



ну вы же сами писали
Цитата(djamshud @  20.7.2010,  13:26 Найти цитируемый пост)
Поведение то одинаковое

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

PM   Вверх
Abyx
Дата 20.7.2010, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 601
Регистрация: 3.11.2009

Репутация: 1
Всего: 10



Цитата(azesmcar @  20.7.2010,  14:23 Найти цитируемый пост)
но если вдруг очень нужно, чтобы функция работала именно для char* и short (или что-то там еще) то этого тоже довольно легко добиться добавив static assert.


без ненужных энумов и бустовских статик ассертов
Код

template <typename T> struct is_not_my_type;
template <> struct is_not_my_type<const char*> {};
template <> struct is_not_my_type<short> {};

template <class A1, class A2, class A3> 
void foo(A1 a1, A2 a2, A3 a3)
{
    is_not_my_type<A1>();
    is_not_my_type<A2>();
    is_not_my_type<A3>();

    std::cout << a1 << a2 << a3 << std::endl;
}

int main()
{
   foo((short)1, 2, 3);
}


выдает ошибку
Код

In function 'void foo(A1, A2, A3) [with A1 = short int, A2 = int, A3 = int]':
t.cpp:18:   instantiated from here
Line 9: error: invalid use of undefined type 'struct is_not_my_type<int>'


Это сообщение отредактировал(а) Abyx - 20.7.2010, 14:59
PM MAIL   Вверх
borisbn
Дата 20.7.2010, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Abyx, я atoi просто так написал, чтобы понятно было в какую сторону смотреть...
и вообще, мой пример может не пригодиться, если у этой функции в качестве char * аргументов не строковое представление чисел, а что-то другое.
Согласен со всеми, что без понимания, что должна эта функция делать ( или хотя бы что должны значить аргументы ), помочь ТС-ру сложно.


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
djamshud
Дата 20.7.2010, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 8
Всего: 39



>вывод всего лишь пример одинакового поведения

Не совсем. Вывод - тривиальный пример одинакового поведения с учетом того, что дальнейший обработчик (в вашем примере это std::cout) уже перегружен работать с разными типами. Если совсем чуть-чуть усложнить задачу и предположить, что передаваться будет не null-terminated строка, даже простое распечатывание станет намного веселее. Но даже если не трогать входные параметры, можно придумать тысячу и один вариант нетривиального (одинакового) поведения сабжевой функции.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
azesmcar
Дата 20.7.2010, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Abyx

Да, одно и тоже..конечно подключать boost ради этого не стоит smile 
Код

template <typename T> struct mytype { };
template <> struct mytype<const char*> { enum { check = 1 }; };
template <> struct mytype<short> { enum { check = 1 }; };
template <class A1, class A2, class A3> 
void foo(A1 a1, A2 a2, A3 a3)
{
    mytype<A1>::check;
    mytype<A2>::check;
    mytype<A3>::check;
    std::cout << a1 << a2 << a3 << std::endl;
}

можно и как-то так, без создание лишних объектов, правда я вообще не считаю, что это нужно. Одного шаблона достаточно.

Добавлено через 4 минуты и 38 секунд
djamshud

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

Цитата(djamshud @  20.7.2010,  15:01 Найти цитируемый пост)
Если совсем чуть-чуть усложнить задачу и предположить, что передаваться будет не null-terminated строка, даже простое распечатывание станет намного веселее. 

тогда распечатка для типов char* и short будет разная, а значит и функции будут разные.

Это сообщение отредактировал(а) azesmcar - 20.7.2010, 15:05
PM   Вверх
djamshud
Дата 20.7.2010, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 8
Всего: 39



azesmcar, под одинаковым я подразумевал смысловое одинаковое поведение, а не то, что код для каждого аргумента будет один в один независимо от его типа. В общем то в теории перегрузка и в особенности шаблоны как раз и предназначены для этого, но на практике часто проще воспользоваться variant-ом в том или ином виде. Я про свою практику.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
mes
Дата 20.7.2010, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



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


--------------------
PM MAIL WWW   Вверх
djamshud
Дата 20.7.2010, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 8
Всего: 39



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


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
mes
Дата 20.7.2010, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(djamshud @  20.7.2010,  14:38 Найти цитируемый пост)
 всего лишь один дополнительный условный переход

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


--------------------
PM MAIL WWW   Вверх
djamshud
Дата 20.7.2010, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 8
Всего: 39



>при чем тут переход, когда речь идет о предназначении

Переход при том же, причем и ваше заявление о рантаймовой обработке типа. То есть в рамках неопределенного предназначения функции практически непричем. Можно сделать и так, и так, и один из вариантов окажется более простым/удачным, когда будет полностью сформулирована задача.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
mes
Дата 20.7.2010, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(djamshud @  20.7.2010,  14:50 Найти цитируемый пост)
 причем и ваше заявление о рантаймовой обработке типа

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

Цитата(djamshud @  20.7.2010,  14:50 Найти цитируемый пост)
То есть в рамках неопределенного предназначения функции практически непричем.

вариант можно обсуждать уже, в рамках типа smile 






--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 20.7.2010, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(Abyx @  20.7.2010,  14:58 Найти цитируемый пост)
бустовских статик ассертов

статик ассерты давно уже в стандарте. компилятор обновите ;)
PM WWW   Вверх
Abyx
Дата 20.7.2010, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 601
Регистрация: 3.11.2009

Репутация: 1
Всего: 10



boostcoder, я обновил, не беспокойтесь
PM MAIL   Вверх
bsa
Дата 20.7.2010, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Цитата(boostcoder @  20.7.2010,  18:37 Найти цитируемый пост)
статик ассерты давно уже в стандарте.

Ты про еще невышедший стандарт?
PM   Вверх
boostcoder
Дата 20.7.2010, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(bsa @ 20.7.2010,  21:25)
Цитата(boostcoder @  20.7.2010,  18:37 Найти цитируемый пост)
статик ассерты давно уже в стандарте.

Ты про еще невышедший стандарт?

оба топовых компилятора поддерживают c++0x. это о чем говорит?
PM WWW   Вверх
xvr
Дата 12.8.2010, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Господа, от ваших высоконаучных споров ТС по видимому испугался и куда то тихо свалил  smile Хотелось бы и его послушать на тему, что он хотел сделать со своими 9ю (или одной) функцией?

PM MAIL   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1421 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.