#include <iostream>
#include "uCalc.h"

using namespace std;
using namespace uCalcSoftware;

#define tf(IsTrue) ((IsTrue) ? "True" : "False")

int main() {
   uCalc uc;
   // The implicit 'uc' object is not the default upon creation.
   cout << "Is 'uc' the default instance? " << tf(uc.IsDefault()) << endl;

   // Create a new uCalc instance. It also won't be the default.
   uCalc myCalc;
   cout << "Is 'myCalc' the default instance? " << tf(myCalc.IsDefault()) << endl;

   // Let's get the actual default instance and check it.
   uCalc defaultInstance = uCalc::DefaultInstance();
   cout << "Is the instance from uCalc.DefaultInstance the default? " << tf(defaultInstance.IsDefault()) << endl;
}