Skip to content

Instantly share code, notes, and snippets.

View congdanhqx-zz's full-sized avatar

DOAN Tran Cong Danh congdanhqx-zz

View GitHub Profile
@congdanhqx-zz
congdanhqx-zz / .vimrc
Last active August 5, 2016 08:00
.vimrc
set nocompatible " be vimproved, required
filetype off " required
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" " alternatively, pass a path where Vundle should install plugins
" "call vundle#begin('~/some/path/here')
"
" " let Vundle manage Vundle, required
@congdanhqx-zz
congdanhqx-zz / concept.cpp
Created July 25, 2016 18:28
C++ Concepts simpliest example
#include <list>
#include <iostream>
#include <algorithm>
#if defined(__cpp_concepts) && __cpp_concepts >= 201500
template<typename T>
concept bool HasMemberNamedTestConcept = requires(T t) {
t.test;
};
#include <memory>
int a;
int b;
void swap1(void)
{
int t = a;
a = b;
b = t;
}
@congdanhqx-zz
congdanhqx-zz / .travis.yml
Created April 28, 2016 03:41
Building Modern C++ with Travis CI
language: generic
cache:
apt: true
matrix:
include:
- os: linux
env: COMPILER_NAME=gcc CXX=g++-5 CC=gcc-5
addons:
@congdanhqx-zz
congdanhqx-zz / private_robber.cpp
Last active July 25, 2016 10:03
How to access private member in C++
#include <iostream>
template <class Tag, typename Tag::type Value>
struct PrivateRobber {
friend typename Tag::type get(Tag) {
return Value;
}
};
class Item {
@congdanhqx-zz
congdanhqx-zz / dependent.cpp
Last active August 29, 2015 13:57
Example for template, callback function
template<class Container>
void doWork(Container& container)
{
Container::iterator it;
Container::iterator * it_ptr;
}
struct Person
{
static int iterator;
@congdanhqx-zz
congdanhqx-zz / alignment.cpp
Last active August 29, 2015 13:57
Example for C/C++ keywords
#include <iostream>
using namespace std;
struct first {
char first_char;
int an_int;
char second_char;
};
struct second {
@congdanhqx-zz
congdanhqx-zz / Shuffle.cs
Last active December 28, 2015 21:19 — forked from anonymous/Shuffle
Shuffle An Array in C#
/// <summary>
/// Shuffle an <seealso cref="Array"/> of type <typeparamref name="T"/>
/// then return it for chaining.
/// </summary>
/// <typeparam name="T">Type of element in array.</typeparam>
/// <param name="array">The array which need to shuffle. This array will be modified.</param>
/// <returns>The modified array. It's the same reference with the input array.</returns>
public T[] Shuffle<T>(T[] array)
{
Random rnd = new Random();
public static class TypeExtensions
{
/// <summary>
/// Determine whether a type is simple (String, Decimal, DateTime, etc)
/// or complex (i.e. custom class with public properties and methods).
/// </summary>
/// <see cref="http://stackoverflow.com/questions/2442534/how-to-test-if-type-is-primitive"/>
public static bool IsSimpleType(
this Type type)
{
#include <iostream>
using namespace std;
template <class T>
int get_age(T obj) {
return obj.age;
}
class Person {
public: