小编Gra*_*eme的帖子

如何将Jekyll站点推送到已经构建的GitHub?

我有一个我在本地构建的站点,但由于它在_plugins中有条目,GitHub无法在提交时构建它.我了解您可以离线构建您的站点然后提交构建版本 - 这可能吗?如果是这样,我如何在检查来源的同时实现这一目标?

ruby github jekyll

2
推荐指数
1
解决办法
145
查看次数

template-id与任何模板delcaration都不匹配

我遇到了令人沮丧的编译器错误,我似乎无法解决.这与模板专业化有关,但我看不出有什么问题......

../../include/thread/lock_guard.inl:23: error: template-id 'lock_guard<>' for 'thread::lock_guard<thread::null_mutex>::lock_guard(thread::null_mutex&)' does not match any template declaration
../../include/thread/lock_guard.inl:23: error: invalid function declaration
../../include/thread/lock_guard.inl:29: error: template-id 'lock_guard<>' for 'thread::lock_guard<thread::null_mutex>::~lock_guard()' does not match any template declaration
../../include/thread/lock_guard.inl:29: error: invalid function declaration
Run Code Online (Sandbox Code Playgroud)

代码如下:

 #include "thread/mutex.hpp"

namespace thread {

    template <typename T>
    class lock_guard
    {
        public:
            lock_guard(T& lock);
            ~lock_guard();

        private:
            mutable T&  m_lock;
            mutable int m_state;
    };

    template <>
    class lock_guard<null_mutex>
    {
       public:
            lock_guard(null_mutex&);
            ~lock_guard();
    };

} //namespace

#include "thread/lock_guard.inl"

------------------------------------    

#include "thread/lock_guard.hpp"

namespace thread {

    template <typename …
Run Code Online (Sandbox Code Playgroud)

c++ template-specialization

1
推荐指数
1
解决办法
2718
查看次数

将位掩码值(1,2,4,8等)映射到向量索引(1,2,3,4等)的有效方法

我有一组可以按位或一起使用的值:

enum EventType_e
{
    EventType_PING  = 1,
    EventType_PANG  = 2,
    EventType_PONG  = 4,
    EventType_PUNG  = 8
};
Run Code Online (Sandbox Code Playgroud)

我希望这个枚举增长到最多包含15-20个项目.在接收到这些枚举值中的一个时,我希望能够将其映射到向量,但是我不想使用稀疏数组来折叠值.将1,2,4,8,16,32映射到1,2,3,4,5,6的最佳方法是什么(即在2 ^ x = 1,2 ^ x = 2,2中找到'x' ^ x = 4,2 ^ x = 8等)

c++ bit-manipulation

1
推荐指数
1
解决办法
3834
查看次数

在Python中将*args传递给string.format?

是否可以将*args传递给string.format?我有以下功能:

@classmethod
def info(cls, component, msg, *args):
    """Log an info message"""
    cls.__log(cls.Level.INFO, component, msg, args)

@classmethod
def __log(cls, level, component, msg, *args):
    """Log a message at the requested level"""
    logging.getLogger("local").log(level, " - ".join([component, msg.format(args)]))
Run Code Online (Sandbox Code Playgroud)

当我尝试使用LogCapture进行单元测试时,我得到以下结果:

def test_logWithArgs(self):
    Logger.level(Logger.Level.INFO)
    with LogCapture(level=Logger.Level.INFO) as lc:
        Logger.info("MyComponent", "{0}", "TestArg")
        lc.check(("local", "INFO", "MyComponent - TestArg"))


AssertionError: Sequence not as expected:

same:
()

first:
(('local', 'INFO', 'MyComponent - TestArg'),)

second:
(('local', 'INFO', "MyComponent - (('TestArg',),)"),)
Run Code Online (Sandbox Code Playgroud)

python logging args

1
推荐指数
1
解决办法
1918
查看次数

如何避免在C++中无法重载返回类型

我有功能,可以创建许多不同的模板类型; 一个简单的问题例子是:

EncodedMsg<?>* encode(const Msg& msg)
{
    if(msg.qty < 100) 
        return new EncodedMsg<short>(...);
    else if(msg.qty < 100000)
        return new EncodedMsg<int>(...);
    else 
        return new EncodedMsg<long>(...);
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  1. 关于模板的内容的决定是在函数内决定的
  2. 我不能在返回类型上重载
  3. 我不想返回基类类型的EncodedMsg,因为我将不得不解码它后面的消息类型

谁能想到解决这个问题的方法呢?

c++

0
推荐指数
1
解决办法
158
查看次数

Python中可以使用C++样式的日志记录宏吗?

是否有可能在Python中实现以下(伪)代码的等价物?

#define DEBUG(topic, msg) LOG_IMPL(Logger.DEBUG, topic, msg)
#define INFO(topic, msg) LOG_IMPL(Logger.INFO, topic, msg)
#define LOG_IMPL(level, topic, msg) if(Logger.level() <= level) { Logger.log(level, topic, msg); }

DEBUG("MyComponent", "What you logging at?")
Run Code Online (Sandbox Code Playgroud)

这里的好处是你不必评估字符串日志消息,例如连接字符串,调用.format()等.)

更新:

懒惰的记录器消息字符串评估 - 这回答了我的问题所以我将投票结束这篇文章.

c++ python macros logging

0
推荐指数
1
解决办法
814
查看次数