Re[11]: Достаточно ли знать С без знания С++ для устройства
От: Cyberax Марс  
Дата: 05.09.14 01:48
Оценка:
Здравствуйте, eskimo82, Вы писали:

E>>>Стандарты разные бывают. Ко всему прочему есть де-факто стандарты.

C>>Вот в С11 их взяли из С++.
E>C11 когда приняли ? а когда появились всякие __sync_fetch_and_sub ?
И что дальше-то?

E>>>Много чего. Возврат структурных типов из функций, например.

C>>Не позорься, а?
E>Да это ты не позорься, если не знал.
struct test_t
{
   int a, b;
};

test_t testit()
{
   return {1, 2};
}

int main()
{
   test_t res = testit();
   printf("%d %d\n", res.a, res.b);
}

Всё ОК.

C>>
C>>- пусто -
C>>

E>Не в состоянии составить список ?
Нет, это полный список.

C>>>>Можно пример?

E>>>
E>>>public class AAA {
E>>>    public void selectAll(boolean tag) {
E>>>        for (Node node: nodes.values()) {
E>>>            node.select = tag;
E>>>        }
E>>>    }
E>>>    public void addNode(String id, Node node) {
E>>>        nodes.put(id, node);
E>>>    }
E>>>    IdentityHashMap<String, Node> nodes = new IdentityHashMap();
E>>>};
E>>>


C>>И всё. Тем более, что такая ошибка — это вообще из стиля "ну вот я тут забыл написать весь код и оно ничего не работает".

E>Дело в том, что в C++ такую ошибку допустить в принципе нельзя.
Да ну?
class AAA
{
    IdentityHashMap *nodes;
    AAA()
    {
        //Whoopsie
    }
};

Про всякие int'ы вообще молчу.

C>>В отличие от С, в Java доступны нетривиальные in-place конструкторы.

E>Мне абсолютно побоку на "нетривиальные in-place конструкторы", я на них не надрачиваю.
Только что подрочил уже.

C>>Работает плохо, и разбухивает код. Не говоря уж о сплошных ODR-нарушениях при попытках оптимизировать.

E>МММ, щас ты меня будеш лечить что templates в C++ не разбухивают код ? Угомонись уже, код оптимизируется очень хорошо.
Не разбухивают, по сравнению с макросами.
Sapienti sat!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.