Skip to content

Instantly share code, notes, and snippets.

@plasma-effect
plasma-effect / Main.cpp
Created June 1, 2016 15:21
plasma.Coroutineは死にました
#include<Siv3D.hpp>
#include<boost/coroutine2/all.hpp>
#include<boost/optional.hpp>
std::vector<int> vec;
boost::optional<int> opt;
constexpr int count = 2;
std::wstring str;
const wchar_t message[] = L"新しい数字を入力するが良い";
@plasma-effect
plasma-effect / regexpr.hpp
Last active October 14, 2016 02:35
regexpr
#pragma once
// Copyright plasma-effect 2015
// Distributed under the Boost Software License, Version 1.0.
// (See http://www.boost.org/LICENSE_1_0.txt)
#include<type_traits>
#include<cinttypes>
#include<typeindex>
#include<vector>
#include<Siv3D.hpp>
#include<chrono>
#include<vector>
#include<functional>
#include"regexpr.hpp"
namespace sch = std::chrono;
typedef sch::milliseconds base_time_t;
@plasma-effect
plasma-effect / main.cpp
Last active November 5, 2016 15:34
ジャパニーズとても迷惑コード(TMPでエラトステネスの篩)
#include<iostream>
#include<chrono>
#include<vector>
#include<array>
#include<set>
#include<random>
#include<queue>
struct none_t {};
template<class Lhs, class Rhs>struct tree
@plasma-effect
plasma-effect / main.cpp
Last active November 13, 2016 14:51
ジャパニーズ結構迷惑コード(コンパイル時エラトステネス)
#include<iostream>
#include<type_traits>
#include<utility>
struct none_t
{
};
template<std::size_t I>using index_node = std::integral_constant<std::size_t, I>;
#pragma once
#ifndef PLASMA_REGEXPR_
#define PLASMA_REGEXPR_
#include<string>
#include<array>
#include<vector>
#include<memory>
#include<typeindex>
#include<boost/utility/string_view.hpp>
@plasma-effect
plasma-effect / main
Created November 15, 2016 14:51
ジャパニーズなかなか迷惑コード(TMPエラトステネス)
#include<iostream>
#include<type_traits>
#include<utility>
#include<functional>
namespace eratosthenes
{
template<std::size_t I, class Sequence>struct add;
template<std::size_t I, std::size_t... Is>struct add<I, std::index_sequence<Is...>>
{
@plasma-effect
plasma-effect / main.md
Created November 27, 2016 12:12
light_adt

plasma.ADTにlight_adt.hppを追加した。使い方は以下の通り。

#include<iostream>
#include<string>
#include"light_adt.hpp"

using namespace plasma_adt;
struct list :data_type<list, int, tuple<int, list>>
{
	templatelist(T&amp;&amp; arg) :data_type(std::forward(arg))
@plasma-effect
plasma-effect / main.md
Last active December 4, 2016 12:07
VS2017の新機能

辞世の句

PMPやってたらコンパイラ間の挙動の違いに飲み込まれて死んだ。大体msvcが悪い。(自由律)

はじめに

この記事はC++アドベントカレンダー4日目の記事です。
昨日はコンパイル中にコンパイルする「コンパイル時Cコンパイラ」をつくった話でした。

先日VS2017RCが出ました。VC++のコア言語とライブラリに関して新機能をチェックしていこうという記事です。全部は無理ですが。

以下プロパティの言語標準を「ISO C++ 標準の最終草案 (/std:c++latest)」にしていることを前提とします。

@plasma-effect
plasma-effect / Main.cpp
Created December 6, 2016 15:17
洗濯機クソコラ生成器
#include<Siv3D.hpp>
#include<algorithm>
typedef std::pair<double, double> point;
typedef point size;
double& x(point& p)
{
return p.first;
}
double& y(point& p)