Giter Site home page Giter Site logo

timburculosis / header-utilities Goto Github PK

View Code? Open in Web Editor NEW

This project forked from njoy/header-utilities

0.0 0.0 0.0 257 KB

A header distilling a subset of the NJOY utility library for use with header-only libraries.

License: Other

Shell 8.00% C++ 60.02% CMake 31.98%

header-utilities's Introduction

Header Utilities

A single header distilling a subset of the NJOY utility library for use with header-only libraries.

Minimal Example

#include <iostream>
#include <vector>
#include "header-utilities.hpp"

using namespace njoy::utility;

int main(){

std::unique_ptr<int> myUnique;
std::shared_ptr<int> myShared;
std::vector<int> myVector{};
std::vector<int>::iterator myIterator = myVector.begin();

if ( is_unique_ptr< decltype(myUnique) >::value ){
  std::cout << "myUnique is an instantiation of the unique_ptr template" << std::endl;
}

if ( not is_unique_ptr< decltype(myShared) >::value ){
  std::cout << "myShared is not an instantiation of the shared_ptr template" << std::endl;
}

if ( not is_shared_ptr< decltype(myUnique) >::value ){
  std::cout << "myUnique is not an instantiation of the shared_ptr template" << std::endl;
}

if ( is_shared_ptr< decltype(myShared) >::value ){
  std::cout << "myShared is an instantiation of the shared_ptr template" << std::endl;
}

if ( is_smart_ptr< decltype(myUnique) >::value ){
  std::cout << "myUnique is an instantiation of a standard library smart pointer template" << std::endl;
}

if ( is_smart_ptr< decltype(myShared) >::value ){
  std::cout << "myShared is an instantiation of a standard library smart pointer template" << std::endl;
}

if ( is_container< decltype(myVector) >::value ){
  std::cout << "myVector is a container type" << std::endl;
}

if ( not is_container< decltype(myIterator) >::value ){
  std::cout << "myIterator is not a container type" << std::endl;
}

if ( not is_iterator< decltype(myVector) >::value ){
  std::cout << "myVector is not an iterator type" << std::endl;
}

if ( is_iterator< decltype(myIterator) >::value ){
  std::cout << "myIterator is an iterator type" << std::endl;
}

auto f = []( std::vector<int>&& v ){};

/* can't compile */
// f( myVector );

/* can compile */
f( copy(myVector) );

}

header-utilities's People

Contributors

apmccartney avatar jlconlin avatar whaeck avatar nathangibson14 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.