- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
//В mathc.hpp:
typedef float import (float);
//В неком cpp функция:
float cm() {
import calcFpu;
//...
float src = //...
float res = calcFpu(src);
return res;
}
//В mathc.cpp:
void calcFpu(float){
//...
void calcSSE(float){
//...
Стало быть, в этом ГК в C++ появилась модульная структура. Страшно представить, что же в следующем коде будет...
http://ideone.com/kl64iU
Забавно, но кресты оказались менее строгими, чем С в данном случае.
Крестоблядское name mangling учитывает только типы входных параметров, но не результата, поэтому в крестах float calcFpu() и void calcFpu() отобразятся на одно внешнее имя.
Автор свелосипедил using namespace.
Т.е. чтобы использовать calcSSE() нужно написать import calcSSE. КПЦ. Мой мозг порвало. Я уж думал, что будет красивая реализация с указателями на ф-ции и выбором нужной ф-ции в зависимости от архитектуры. Реально говно. Плюсую.
За исключением, конечно, тех случаев, когда функция с большой вероятностью изменится.
Но если писать по-правилу "одна функция - одна простая задача / один класс - одна простая задача", то и изменения скорее всего не понадобятся.
За исключением, конечно, тех случаев, когда невозможно разбить какую-либо сложную сущность на более простые.