Skip to content

Instantly share code, notes, and snippets.

View oliora's full-sized avatar

Andrey Upadyshev oliora

View GitHub Profile
@oliora
oliora / simple_orm.h
Last active March 3, 2016 23:50
Concept of Simple ORM made with C++11
// Simple ORM = SORM
namespace sorm {
namespace details {
template<size_t N, class Statement, class P>
inline void bind_params(Statement& stmt, const P& p)
{
bind_param(stmt, N, p);
}
// Developing of the topic, see previous gists:
// 1. https://gist.github.com/oliora/b8207b4a74a6bb868ef4
// 2. https://gist.github.com/pudov/0b1572989c418684c381
#include <type_traits>
#include <utility>
#include <vector>
#include <set>
// Let's use std::void_t. Unfortunately it's introduced in C++17 but you can easily add it by yourself
@oliora
oliora / test_uref_types.cpp
Last active February 18, 2016 09:37
Print value category and constness of a universal reference for all the different argument options
#include <iostream>
#include <type_traits>
#include <utility>
namespace {
struct Func
{
Func() = default;
#include <type_traits>
#include <utility>
#include <algorithm>
namespace has_own_find_impl__ {
struct two__ { char c__[2]; };
template <class T> static two__ test__(...);
template <class T> static char test__(decltype(std::declval<T>().find(std::declval<typename T::key_type>()))* = 0);
diff --git a/Source/Modules/python.cxx b/Source/Modules/python.cxx
index 14e2794..01bb31d 100644
--- a/Source/Modules/python.cxx
+++ b/Source/Modules/python.cxx
@@ -2378,7 +2378,7 @@ public:
Printv(f->def, linkage, builtin_ctor ? "int " : "PyObject *", wname, "(PyObject *self, PyObject *args) {", NIL);
Wrapper_add_local(f, "argc", "int argc");
- Printf(tmp, "PyObject *argv[%d]", maxargs + 1);
+ Printf(tmp, "PyObject *argv[%d] = {}", maxargs + 1);
@oliora
oliora / logger.cpp
Last active August 29, 2015 14:13
Simple Global Logger
#include "logger.h"
Logger Logger::instance_;
void Logger::log()
{
//...
}
@oliora
oliora / boost_msvs2013.patch
Created December 5, 2014 10:17
Boost 1.55 patches for MSVS2013
From 6252e5f867d6e1bea603aa2a0e24e6e0b861ea9f Mon Sep 17 00:00:00 2001
From: Andrey Upadyshev <andrey.upadyshev@satprofbv.com>
Date: Tue, 18 Nov 2014 18:48:52 +0100
Subject: Log patch: fixes incorrect output of the dump manipulator, when used
on AVX2-enabled CPU (e.g. Intel Haswell).
---
libs/log/src/dump_avx2.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
@oliora
oliora / CMakeLists.txt
Last active June 17, 2023 05:59
Forward added/changed variables to the function's parent scope
# forward_variables usage example
include(forward_variables.cmake)
# After call to this function, all variables set by find_package will be forwarded to
# function caller scope (i.e. into parent scope).
function(find_boost_package)
start_track_variables()
set(bla_bla 1)
@oliora
oliora / pseudo_fork.cpp
Last active August 29, 2015 14:07
pseudo fork with C++11
void func_with_fork()
{
// local vars
auto r = std::async(std::launch::async, [&]() {
// forked thread code
});
// main thread code
#include <iostream>
template<typename T>
struct Foo
{
void do_something();
Foo()
{
std::cout << "ctor" << std::endl;