@@ -0,0 +1,114 @@ | |||
Language: Cpp | |||
# BasedOnStyle: LLVM | |||
AccessModifierOffset: -2 | |||
AlignAfterOpenBracket: Align | |||
AlignConsecutiveAssignments: false | |||
AlignConsecutiveDeclarations: false | |||
AlignEscapedNewlines: DontAlign | |||
AlignOperands: true | |||
AlignTrailingComments: false | |||
AllowAllParametersOfDeclarationOnNextLine: true | |||
AllowShortBlocksOnASingleLine: false | |||
AllowShortCaseLabelsOnASingleLine: false | |||
AllowShortFunctionsOnASingleLine: All | |||
AllowShortIfStatementsOnASingleLine: false | |||
AllowShortLoopsOnASingleLine: false | |||
AlwaysBreakAfterDefinitionReturnType: None | |||
AlwaysBreakAfterReturnType: None | |||
AlwaysBreakBeforeMultilineStrings: false | |||
AlwaysBreakTemplateDeclarations: Yes | |||
BinPackArguments: true | |||
BinPackParameters: true | |||
BreakBeforeBraces: Allman | |||
BraceWrapping: | |||
AfterClass: true | |||
AfterControlStatement: true | |||
AfterEnum: true | |||
AfterFunction: true | |||
AfterNamespace: true | |||
AfterObjCDeclaration: true | |||
AfterStruct: true | |||
AfterUnion: true | |||
AfterExternBlock: true | |||
BeforeCatch: true | |||
BeforeElse: true | |||
IndentBraces: true | |||
SplitEmptyFunction: false | |||
SplitEmptyRecord: false | |||
SplitEmptyNamespace: false | |||
BreakBeforeBinaryOperators: None | |||
BreakBeforeInheritanceComma: false | |||
BreakInheritanceList: BeforeColon | |||
BreakBeforeTernaryOperators: true | |||
BreakConstructorInitializersBeforeComma: false | |||
BreakConstructorInitializers: BeforeColon | |||
BreakAfterJavaFieldAnnotations: false | |||
BreakStringLiterals: true | |||
ColumnLimit: 120 | |||
CommentPragmas: '^ [NOTE|WARNING|TODO|FIXME]:' | |||
CompactNamespaces: false | |||
ConstructorInitializerAllOnOneLineOrOnePerLine: false | |||
ConstructorInitializerIndentWidth: 4 | |||
ContinuationIndentWidth: 4 | |||
Cpp11BracedListStyle: true | |||
DerivePointerAlignment: false | |||
DisableFormat: false | |||
FixNamespaceComments: false | |||
ForEachMacros: | |||
- foreach | |||
- Q_FOREACH | |||
- BOOST_FOREACH | |||
IncludeBlocks: Preserve | |||
IncludeCategories: | |||
- Regex: '^"(llvm|llvm-c|clang|clang-c)/' | |||
Priority: 2 | |||
- Regex: '^(<|"(gtest|gmock|isl|json)/)' | |||
Priority: 3 | |||
- Regex: '.*' | |||
Priority: 1 | |||
IncludeIsMainRegex: '(Test)?$' | |||
IndentCaseLabels: false | |||
IndentPPDirectives: None | |||
IndentWidth: 2 | |||
IndentWrappedFunctionNames: false | |||
JavaScriptQuotes: Leave | |||
JavaScriptWrapImports: true | |||
KeepEmptyLinesAtTheStartOfBlocks: true | |||
MacroBlockBegin: '' | |||
MacroBlockEnd: '' | |||
MaxEmptyLinesToKeep: 1 | |||
NamespaceIndentation: All | |||
ObjCBinPackProtocolList: Auto | |||
ObjCBlockIndentWidth: 2 | |||
ObjCSpaceAfterProperty: false | |||
ObjCSpaceBeforeProtocolList: true | |||
PenaltyBreakAssignment: 2 | |||
PenaltyBreakBeforeFirstCallParameter: 19 | |||
PenaltyBreakComment: 300 | |||
PenaltyBreakFirstLessLess: 120 | |||
PenaltyBreakString: 1000 | |||
PenaltyBreakTemplateDeclaration: 10 | |||
PenaltyExcessCharacter: 1000000 | |||
PenaltyReturnTypeOnItsOwnLine: 60 | |||
PointerAlignment: Left | |||
ReflowComments: true | |||
SortIncludes: false | |||
SortUsingDeclarations: false | |||
SpaceAfterCStyleCast: false | |||
SpaceAfterTemplateKeyword: false | |||
SpaceBeforeAssignmentOperators: true | |||
SpaceBeforeCpp11BracedList: false | |||
SpaceBeforeCtorInitializerColon: true | |||
SpaceBeforeInheritanceColon: true | |||
SpaceBeforeParens: Never | |||
SpaceBeforeRangeBasedForLoopColon: false | |||
SpaceInEmptyParentheses: false | |||
SpacesBeforeTrailingComments: 1 | |||
SpacesInAngles: false | |||
SpacesInContainerLiterals: false | |||
SpacesInCStyleCastParentheses: false | |||
SpacesInParentheses: false | |||
SpacesInSquareBrackets: false | |||
Standard: Cpp11 | |||
TabWidth: 2 | |||
UseTab: Never |
@@ -0,0 +1,188 @@ | |||
#CLion | |||
.idea | |||
#Kdev | |||
*.kdev* | |||
# | |||
bin | |||
*.swp | |||
# ---> C | |||
# Object files | |||
*.o | |||
*.ko | |||
*.obj | |||
*.elf | |||
# Precompiled Headers | |||
*.gch | |||
*.pch | |||
# Libraries | |||
*.lib | |||
*.a | |||
*.la | |||
*.lo | |||
# Shared objects (inc. Windows DLLs) | |||
*.dll | |||
*.so | |||
*.so.* | |||
*.dylib | |||
# Executables | |||
*.exe | |||
*.out | |||
*.app | |||
*.i*86 | |||
*.x86_64 | |||
*.hex | |||
# Debug files | |||
*.dSYM/ | |||
# ---> C++ | |||
# Compiled Object files | |||
*.slo | |||
*.lo | |||
*.o | |||
*.obj | |||
# Precompiled Headers | |||
*.gch | |||
*.pch | |||
# Compiled Dynamic libraries | |||
*.so | |||
*.dylib | |||
*.dll | |||
# Fortran module files | |||
*.mod | |||
# Compiled Static libraries | |||
*.lai | |||
*.la | |||
*.a | |||
*.lib | |||
# Executables | |||
*.exe | |||
*.out | |||
*.app | |||
# ---> Node | |||
# Logs | |||
logs | |||
*.log | |||
npm-debug.log* | |||
# Runtime data | |||
pids | |||
*.pid | |||
*.seed | |||
# Directory for instrumented libs generated by jscoverage/JSCover | |||
lib-cov | |||
# Coverage directory used by tools like istanbul | |||
coverage | |||
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) | |||
.grunt | |||
# node-waf configuration | |||
.lock-wscript | |||
# Compiled binary addons (http://nodejs.org/api/addons.html) | |||
build/Release | |||
# Dependency directory | |||
# https://docs.npmjs.com/misc/faq#should-i-check-my-node-modules-folder-into-git | |||
node_modules | |||
# ---> Qt | |||
# C++ objects and libs | |||
*.slo | |||
*.lo | |||
*.o | |||
*.a | |||
*.la | |||
*.lai | |||
*.so | |||
*.dll | |||
*.dylib | |||
# Qt-es | |||
/.qmake.cache | |||
/.qmake.stash | |||
*.pro.user | |||
*.pro.user.* | |||
*.qbs.user | |||
*.qbs.user.* | |||
*.moc | |||
moc_*.cpp | |||
qrc_*.cpp | |||
ui_*.h | |||
Makefile.* | |||
*-build-* | |||
# QtCreator | |||
*.autosave | |||
#QtCtreator Qml | |||
*.qmlproject.user | |||
*.qmlproject.user.* | |||
# ---> Ruby | |||
*.gem | |||
*.rbc | |||
/.config | |||
/coverage/ | |||
/InstalledFiles | |||
/pkg/ | |||
/spec/reports/ | |||
/spec/examples.txt | |||
/test/tmp/ | |||
/test/version_tmp/ | |||
/tmp/ | |||
## Specific to RubyMotion: | |||
.dat* | |||
.repl_history | |||
build/ | |||
## Documentation cache and generated files: | |||
/.yardoc/ | |||
/_yardoc/ | |||
/doc/ | |||
/rdoc/ | |||
## Environment normalisation: | |||
/.bundle/ | |||
/vendor/bundle | |||
/lib/bundler/man/ | |||
# for a library or gem, you might want to ignore these files since the code is | |||
# intended to run in multiple environments; otherwise, check them in: | |||
# Gemfile.lock | |||
# .ruby-version | |||
# .ruby-gemset | |||
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this: | |||
.rvmrc | |||
# ---> Rust | |||
# Compiled files | |||
*.o | |||
*.so | |||
*.rlib | |||
*.dll | |||
# Executables | |||
*.exe | |||
# Generated by Cargo | |||
/target/ | |||
.vs |
@@ -0,0 +1,6 @@ | |||
cmake_minimum_required(VERSION 3.18) | |||
project(conet) | |||
set(CMAKE_CXX_STANDARD 20) | |||
add_executable(conet future_adapter.h main.cpp) |
@@ -0,0 +1,45 @@ | |||
/*********************************************** | |||
File Name: future_adapter.h.h | |||
Author: Abby Cin | |||
Mail: abbytsing@gmail.com | |||
Created Time: 10/15/20 8:37 PM | |||
***********************************************/ | |||
#ifndef FUTURE_ADAOTER_H_ | |||
#define FUTURE_ADAOTER_H_ | |||
#include <coroutine> | |||
#include <future> | |||
namespace std | |||
{ | |||
template<typename R, typename... Args> | |||
struct coroutine_traits<future<R>, Args...> | |||
{ | |||
struct promise_type | |||
{ | |||
promise<R> p; | |||
auto initial_suspend() { return suspend_never{}; } | |||
auto finial_suspend() { return suspend_never{}; } | |||
template<typename T> | |||
void return_value(T&& t) | |||
{ | |||
p.set_value(forward<T>(t)); | |||
} | |||
template<typename T> | |||
void yield_value(T&& t) | |||
{ | |||
p.set_value(forward<T>(t)); | |||
} | |||
void unhandled_exception() { p.set_exception(current_exception()); } | |||
future<R> get_return_object() { return p.get_future(); } | |||
}; | |||
}; | |||
} // namespace std | |||
#endif // FUTURE_ADAOTER_H_ |
@@ -0,0 +1,7 @@ | |||
#include <iostream> | |||
int main() | |||
{ | |||
std::cout << "Hello, World!" << std::endl; | |||
return 0; | |||
} |