This commit is contained in:
CismonX 2019-05-30 14:19:28 +08:00
parent 03c78a5850
commit a5f076401f
2 changed files with 8 additions and 4 deletions

View File

@ -174,7 +174,7 @@ namespace php_arma
template <const char *Name, typename F>
zend_always_inline
zend_class_entry *ce_init(const zend_function_entry *methods, F init_func)
zend_class_entry *ce_init(const zend_function_entry *methods, F&& init_func)
{
zend_class_entry tmp_ce;
constexpr auto name = str::with_arma_prefix<Name>;
@ -185,7 +185,7 @@ namespace php_arma
template <const char *Name, typename F, typename... Ts>
zend_always_inline
zend_class_entry *ce_init(const zend_function_entry *methods, F init_func, Ts... interfaces)
zend_class_entry *ce_init(const zend_function_entry *methods, F&& init_func, Ts... interfaces)
{
auto ce = ce_init<Name>(methods, init_func);
zend_class_implements(ce, sizeof...(Ts), interfaces...);
@ -296,7 +296,7 @@ namespace php_arma
template <typename T, typename F>
zend_always_inline
zend_object *object_create(zend_class_entry *ce, F init)
zend_object *object_create(zend_class_entry *ce, F&& init)
{
auto obj = reinterpret_cast<T*>(emalloc(sizeof(T) + sizeof(zend_object) - sizeof(zval)));
auto zobj = to_zend_object(obj);

View File

@ -5,12 +5,14 @@ Test save/load for `Arma\Mat`.
require_once 'includes/loaded.php';
is_php_arma_loaded();
?>
--ENV--
TMP_FILE=/tmp/php_arma_test.tmp
--FILE--
<?php
require_once 'includes/assert.php';
$file_name = 'test_mat_data';
$file_name = getenv('TMP_FILE');
$mat = Arma\CxDMat::fromString('(1 2) (3 4); (5 6) (7 8)');
batch_assert('saving of `Arma\\Mat`',
@ -22,6 +24,7 @@ $handle = fopen($file_name, 'r');
batch_assert('loading of `Arma\\Mat`',
[true, $mat1->load($handle, Arma\FileType::ARMA_BINARY)]
);
fclose($handle);
$eq_mat = $mat->equals($mat1);
batch_assert('loading of `Arma\\Mat`',
@ -32,6 +35,7 @@ batch_assert('loading of `Arma\\Mat`',
?>
--CLEAN--
<?php
$file_name = getenv('TMP_FILE');
if (file_exists($file_name)) {
unlink($file_name);
}