[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/josh28x/cpp11/main/cpp11test/src/test-external_pointer.cpp [Back]  [Original]

#include 
#include "cpp11/external_pointer.hpp"

#include 

bool deleted = false;

void deleter(int* ptr) {
  deleted = true;
  delete ptr;
}

context("external_pointer-C++") {
  test_that("external_pointer works") {
    std::vector* v = new std::vector;
    v->push_back(1);
    v->push_back(2);

    cpp11::external_pointer p(v);

    expect_true(p->at(0) == 1);
    expect_true(p->at(1) == 2);

    p.release();

    // Double release should be a no-op
    p.release();

    expect_true(p.get() == nullptr);
  }

  test_that("external_pointer works with a custom deleter") {
    deleted = false;
    cpp11::external_pointer uniq(new int);
    expect_true(deleted == false);
    uniq.reset();
    expect_true(deleted == true);
  }
}

Web Proxy Viewer  |  New URL  |  Original Page