два пространства имен в файле .cpp для сравнения

Я делаю реализацию с фиксированной точкой, и я запускаю тест, и я пытаюсь проверить точность моих операций с фиксированной точкой с точностью операций из заголовка cmath.

так вот мой код в test.cpp

#include <fixed_point_header.h>
#include <stdio.h>int main()
{
float fp1 = 3.14159;
float fp2 = 4.1723;
float fp3,fp4,fp5,fp6;
fp3 = fp1+fp2;
fp4 = fp1-fp2;
fp5 = fp1*fp2;
fp6 = fp1/fp2;

printf("float fixed point summation data ==%f\n",fp3);
printf("float fixed point difference data ==%f\n",fp4);
printf("float fixed point multiplied data ==%f\n",fp5);
printf("float fixed point divided data ==%f\n",fp6);
}

приведенный выше код протестирован нормально, но теперь мне нужно вычислить те же операции и увидеть результаты из заголовка cmath в том же файле test.cpp. Итак, как мне продолжить, возможно ли это с двумя пространствами имен (одно пространство имен моего заголовочного файла, одно пространство имен std)?

лайк

#include <fixed_point_header.h>
#include <stdio.h>
#include <math.h>

using namespace fp;int main() {

...// do the fixedpoint operations here

}
using namespace std;

int main() {

...// do the cmath operations here

}

Возможно ли, как приведенный выше код, может кто-нибудь помочь, как с этим работать.

Спасибо

0

Решение

Ответ на основе ваших комментариев:

Содержимое fixed_point_header.h:

namespace fp // This places your function inside the fp namespace
{
float pow(float base, float exp)
{
return 0; // Replace with your algorithm
}
}

Исходный файл:

#include <iostream>
#include <cmath>
#include "fixed_point_header.h"
int main()
{
float f1 = 2.0;
float f2 = 3.0;
std::cout << pow(f1, f2) << std::endl;     // from cmath
std::cout << fp::pow(f1, f2) << std::endl; // from your header
return 0;
}

Выход:

8
0
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]