geelaw 最近的时间轴更新
geelaw's repos on GitHub
PowerShell · 86 人关注
PowerShellThingies
My PowerShell thingies.
C# · 12 人关注
PreviewHost
An example `IPreviewHandlerFrame` implementation using WPF.
Smalltalk · 10 人关注
Dock-PS
Archived in favour of PowerShellThingies.
JavaScript · 10 人关注
SinaWeiboFansRemover
Sina Weibo 粉丝删除器,一个 Microsoft Edge 扩展。
C# · 9 人关注
Use-RawPipeline
Archived in favour of PowerShellThingies.
C# · 6 人关注
AcademicdataBaseChain
Academic dataBase Chain.
PowerShell · 6 人关注
newsstand
A list of email addresses of newsletter / social update. One can build their own email categoriser with this list.
TeX · 5 人关注
laomian
老面 (sourdough, lit. "old dough") is used as the starter for fermenting dough. This repository contains my digital 老面.
PowerShell · 5 人关注
psguy.me
Archived in favour of PowerShellThingies.
TypeScript · 4 人关注
bibtex-ts
General-purpose format-preserving BibTeX parser in TypeScript (JavaScript).
JavaScript · 3 人关注
bio-site
Yet another academic homepage builder.
JavaScript · 3 人关注
strcmp.cc
An online line-based file comparator.
C++ · 2 人关注
onenote-object-model
Unofficial documentation of the component object model API of OneNote.
JavaScript · 2 人关注
RemoteShutdown
Remotely shut Windows down in case your Welcome Screen crashes.
1 人关注
daily-restore-point
Creating a restore point every day is a good habit.
HTML · 1 人关注
ReproduceLiveTileIssue
PowerShell · 0 人关注
1drv-layout
OneDrive layout and file mover. Built for sorting photos. Born in the removal of On-Demand Sync for OneDrive.
C# · 0 人关注
bibtex.net
BibTeX.NET is a .NET library for working with BibTeX files.
SMT · 0 人关注
cse507-boolector
Forked from https://github.com/Boolector/boolector
C++ · 0 人关注
mem-layouts-binary-search
Forked from https://github.com/rlunding/alg_eng
Assembly · 0 人关注
MS-DOS
The original sources of MS-DOS 1.25 and 2.0, for reference purposes
C# · 0 人关注
neat
Neat is a high-performance .NET basic utility library.
0 人关注
PowerShell
PowerShell for every system!
C++ · 0 人关注
vecole-redux
Constructs OLE from vector-OLE. See http://eprint.iacr.org/2017/617/20170627:191617
geelaw

geelaw

🏢  UW / 博士生
V2EX 第 202505 号会员,加入于 2016-11-22 23:09:06 +08:00
今日活跃度排名 7207
Clubhouse 真的很像不久以前我测试过的一个 app
分享发现  •  geelaw  •  2021-06-25 16:12:06 PM  •  最后回复来自 nullcoder
9
C# 泛型、duck typing、高效枚举
C#  •  geelaw  •  2020-09-28 04:59:01 AM  •  最后回复来自 good1uck
1
HTML 里的“词边界”
分享发现  •  geelaw  •  2020-02-25 05:22:00 AM  •  最后回复来自 geelaw
3
如何自动化“固定到任务栏”
分享创造  •  geelaw  •  2020-02-14 19:00:25 PM  •  最后回复来自 ysc3839
4
谨慎安装 Edge (Chromium) 稳定版
分享发现  •  geelaw  •  2020-02-21 22:00:12 PM  •  最后回复来自 ericguo
13
在 Windows 上轻量地隔离 app:以百度云管家为例
  •  1   
    分享创造  •  geelaw  •  114 天前  •  最后回复来自 goodbacon
    23
    刚刚 rm -rf ~ 了
    程序员  •  geelaw  •  2019-12-30 11:19:02 AM  •  最后回复来自 doveyoung
    8
    我的静态博客 BibTeX 插件完工啦~🎉
  •  1   
    分享创造  •  geelaw  •  2019-08-19 04:17:49 AM  •  最后回复来自 Or2
    1
    用 JavaScript 解析 BibTeX
    分享创造  •  geelaw  •  2019-08-23 23:10:00 PM  •  最后回复来自 hronro
    3
    geelaw 最近回复了
    1 天前
    回复了 Contextualist 创建的主题 C++ parameter pack 仅作为部分参数的问题
    @dangyuluo #4 我在 #5 的回复里误解了你的意思,实现 invoke_function 只是为了复现楼主一开始想要实现的版本。
    1 天前
    回复了 Contextualist 创建的主题 C++ parameter pack 仅作为部分参数的问题
    @dangyuluo 因为可调用的东西不一定是 std::function ,还可以是 lambda 表达式、函数之类的。从 lambda 表达式、函数建立 std::function 有额外的内存分配,对性能不好。此外你也看到了 invoke_function 不能接受函数的名字,必须手工构造一个 std::function 。

    更好的思路是检查这个东西是否可以赋值给 int ,用

    std::is_same_v<
    std::declval<int &>() = f(std::forward<TArgs>(args)..., std::declval<bool>()),
    int &
    >

    这样也可以接受返回 const int &、int &、short 等的可调用的东西。
    1 天前
    回复了 Contextualist 创建的主题 C++ parameter pack 仅作为部分参数的问题
    你可以用 SFINAE 的思路

    #include<utility>
    #include<functional>

    template <typename TCallable, typename ...TArgs>
    auto invoke_functor(TCallable &&f, TArgs&& ...args) -> std::enable_if_t<std::is_same_v<decltype(f(std::forward<TArgs>(args)..., std::declval<bool>())), int>, int>
    {
    int r0 = f(std::forward<TArgs>(args)..., false);
    int r1 = f(std::forward<TArgs>(args)..., true);
    return r0 + r1;
    }

    template <typename TCallable, typename ...TArgs>
    auto invoke_function(const TCallable &f, TArgs&& ...args) -> std::enable_if_t<std::is_same_v<TCallable, std::function<int(TArgs..., bool)>>, int>
    {
    int r0 = f(std::forward<TArgs>(args)..., false);
    int r1 = f(std::forward<TArgs>(args)..., true);
    return r0 + r1;
    }

    int g(int a, int b, bool c)
    {
    return c ? a + b : a - b;
    }

    #include<iostream>

    int main()
    {
    std::cout << invoke_functor(g, 2, 3) << std::endl;
    std::cout << invoke_function(std::function<int(int, int, bool)>(g), 2, 3) << std::endl;
    // Does not work.
    // std::cout << invoke_function(g, 2, 3) << std::endl;
    }
    2 天前
    回复了 wyfyw 创建的主题 Windows 任务栏图标为啥在 IE 这里,把我逗乐了
    @wyfyw #4 任务栏固定应用是快速启动工具栏的进化替代功能,自然是和之前一脉相承的。另外这里只保存快捷方式,还有一些数据存在注册表里。

    @DOLLOR #6 bingo 我记得这个应该是某种 COM/OLE 的魔法。
    2 天前
    回复了 kinglisky 创建的主题 分享发现 讲讲存档文件的包装设计
    @thedrwu #2 IStorage 和 IStream 的噩梦,其实很多人天天都在用,例如 doc/ppt/xls/one 都是。
    3 天前
    回复了 fpure 创建的主题 程序员 这算不算是静态类型系统的缺憾
    >我的问题是有没有可能制造一种类型系统在实际类型匹配的情况下自动地做这个类型断言

    不能,因为判定“实际”类型是否匹配是不可计算问题(确切来说,否认“实际”类型匹配是不可识别问题)。如果只考虑有限定义域(因为实际的电脑是有限大小的内存之类的),确认“实际”类型匹配处于多项式层级的第二层并且是 Sigma_2 完备问题。
    >多组模式之一
    >使用()来表示一组模式
    >
    >/[(a-c)(e-g)]/
    >匹配
    >
    >"a", "b", "c"
    >"e", "f", "g"

    这似乎是误解,在 [] 里面 () 没有特别的含义,/[(a-c)(e-g)]/ 恰好匹配 abcefg() 这 8 个字符里的任意一个,等同于 /[abcefg)(]/。

    >扩展阅读
    >正则表达式的定义

    这里你应该让读者注意实用中的正则表达式和计算理论意义下的正则表达式是不同的,实用意义的正则表达式(例如 JavaScript )的可以描述 non-regular language ,例如 /[01]*\1/ 所匹配的串的集合就不是 regular ,也不是 context-free 。再比如,零宽断言(包括 \b 等)也不能直接用计算理论意义下的正则表达式表达。

    >正则表达式 R 是一种 language, P64

    这是误解,正则表达式描述了一个 regular language ,但本身不是一个 language ,给定字母表的所有正则表达式的集合是另一个 language ,且后面这个 language 不是 regular 。

    >JS 正则表达按照定义来看, 1-6 条可以分别对应
    >2. /./对应任意字符
    >3. //对应空

    这是误解,2 (\varepsilon) 对应的是 //,它匹配长度为 0 的字符串,3 (\varnothing) 对应的是 /[]/,它不匹配任何字符串。

    >正则表达式的局限性
    >正则表达式只能处理有限的 context-free language
    >像嵌套匹配的括号就没法用一个正则去描述
    >是否是 context-free language 可以用 Pumping lemma 去判断

    什么是“有限的 context-free language”?有限 language 都是 regular 。此外,pumping lemma 不能用来证明一个语言是 regular (可以用来证明一个语言不是 regular )。
    9 天前
    回复了 oyp 创建的主题 程序员 问下大家,这种情况会不会扣钱?
    肯定是不能的,但如果 PayPal 通过了交易,你可能会被催收
    @yin1999 #11 可是 Windows PowerShell “自带”的 curl 是 Invoke-WebRequest ,默认也是要用 IE 的(除非用 -UseBasicParsing 取消)。
    14 天前
    回复了 kgdb00 创建的主题 Linux gcc 为什么连这种代码都能编译通过?
    @mingl0280 #32 我觉得您开始混淆应然和实然的问题了,从 #18 以来的问题并不考虑 argc[argv-1] 在最近常见的电脑的常见操作系统的常见编译器上是否对应 argv[argc-1]。

    > argc[argv-1] = *((argc) + *((argv) - (1)))

    这个想法也是错误的,argc[argv-1] 等价于 *(argc + (argv - 1)),改成 *(argc + *(argv - 1)) 是完全不同的意思,后者等价于 argc[argv[-1]],很明显也是不可移植代码。

    认为指针的运算等于“地址数值”的运算也是错误的,更不能认为 p - 1 + 1 等同于 p ,最简单的例子:

    int a[1] = {};
    int *p = a - 1 + 1;

    这段代码里 p 的初始化表达式蕴含着未定义行为,因为 a - 1 是不存在的概念。改成下面这样就没问题了:

    int a[1] = {};
    int *p1 = a + 1 - 1;
    int *p2 = a - (-1) + (-1);
    int *p3 = (int *)((uintptr_t)a - sizeof(int) + sizeof(int));

    前两个版本的运算从来没有离开 a 的元素或元素之后的位置,第三个版本里,无符号数的加减运算无溢出,并且 uintptr_t 和指针之间的转换保证数值上的返程关系。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2308 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 70ms · UTC 15:48 · PVG 23:48 · LAX 08:48 · JFK 11:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.