Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Value *one = ConstantFP::get(getGlobalContext(), APFloat(left));
Value *two = ConstantFP::get(getGlobalContext(), APFloat(right));
Value *result = Builder.CreateFAdd(one, two, "addtmp");
AddFPMathAttributes(BinaryOperator::CreateFAdd... или CreateInsertNUWNSWBinOp(Instruction::Sub, ..., только вместо Instruction::Sub нужная инструкция на основе сопоставляющего массива, а не прописанная вручную. И это именно для облегчения восприятия. Теоретически, разработчики LLVM могли бы создать API, в котором есть класс BuilderValue, который инкапсулирует Value * и имеет полный набор перегруженных операторов С++. Только операций в LLVM намного больше, чем можно представить стандартными перегрузками, например, целочисленное сложение, сложение чисел с плавающей точкой, беззнаковое сложение и т. д. $runner = new CalculRunner(); что-то вроде $codeGen = new CodeGenerator();, тогда это был бы вполне нормальный пример для секции «Getting Started».($app = new Applicaction)->run(); — свой фреймворк. #include <iostream>
using namespace std::placeholders;
template <typename ...T>
int plus(T &&...value) {
return std::bind(std::plus<int>(), _1, _2)(value...);
}
;
int main() {
std::cout << plus(1, 1) << std::endl; // 2
return 0;
}
Configurator configurator = new Configurator();configurator.configure();$num[0] = new Sequence(NumberFactory::ONE, NumberFactory::ONE, NumberFactory::ONE)->getValue(); //111
$num[1] = new Sequence(NumberFactory::ONE, NumberFactory::TWO, NumberFactory::THREE)->getValue(); //123
$finiteNaturalDecimalNumberSequenceFactory = new FiniteNaturalDecimalNumberSequenceFactory();
$decimalNumberFactory = new DecimalNumberFactory();
$firstSummandNumber = $finiteNaturalDecimalNumberSequenceFactory->createNewSequence(
$decimalNumberFactory->loadNumberFromXmlConfig("ONE"),
$decimalNumberFactory->loadNumberFromXmlConfig("ONE")
$decimalNumberFactory->loadNumberFromXmlConfig("ONE")
)->getValue();
$secondSummandNumber = $finiteNaturalDecimalNumberSequenceFactory->createNewSequence(
$decimalNumberFactory->loadNumberFromXmlConfig("ONE"),
$decimalNumberFactory->loadNumberFromXmlConfig("TWO")
$decimalNumberFactory->loadNumberFromXmlConfig("THREE")
)->getValue();
<?php
namespace SimplePHPEasyPlus\Operator;
use SimplePHPEasyPlus\Number\NumberInterface;
class AdditionOperator implements OperatorInterface
{
protected $resultClass;
public function __construct($resultClass)
{
$this->resultClass = $resultClass;
}
public function process(NumberInterface $numberOne, NumberInterface $numberTwo)
{
$resultClass = $this->resultClass;
$numbers = array($numberOne->getValue(), $numberTwo->getValue());
$result = new $resultClass(array_sum($numbers));
return $result;
}
}
use SimplePHPEasyPlus\Iterator\CallbackIterator;github.com/Herzult/SimplePHPEasyPlus/blob/master/tests/Functional/AdditionTest.php
SimplePHPEasyPlus: Складываем числа на PHP