问题列表 - 第31992页

如何加快g ++编译时间(使用大量模板时)

这个问题可能有些奇怪,但我怎样才能加快g ++编译时间?我的C++代码大量使用boost和模板.我已经尽可能多地从头文件中移动并使用-j选项,但是编译(和链接)仍需要很长时间.

是否有任何工具可以分析我的代码并指出编译器的瓶颈?或者可以以某种方式分析在我的代码上运行的编译器?这将是非常好的,因为有时我有这样的印象,我花了太多时间盯着编译器控制台日志...

c++ templates compilation g++

63
推荐指数
4
解决办法
4万
查看次数

关于抽象工厂和注射的问题

这与我的其他问题类似,但我认为不同的是保证一个新问题.

基本上我正在编写用户界面,我的用户界面有可以选择的节点.当选择节点时,用户界面以抽象节点基类"INode"结束.从这个我做节点 - > getFactory(),并从这个我可以创造此时,相应的对话框或观看该节点,因为正确的工厂得到由混凝土节点返回(如出厂> createAddDialog(),出厂时得到一个工厂> createView(节点)等).

我的问题是,试图找到该工厂进入摆在首位的节点的最佳途径.

到目前为止,我已经想到了3种方法:

1)创建节点时注入正确的工厂:

AreaNode *node = new AreaNode(new AreaNodeFactory());
Run Code Online (Sandbox Code Playgroud)

所以AreaNode的定义是:

AreaNode : public INode
{
    AreaNode(INodeAbstractFactory *injectedFactory)
    {
        m_injectedFactory = injectedFactory;
    }

    INodeAbstractFactory* getFactory()
    {
        return m_injectedFactory;
    }

    INodeAbstractFactory* m_injectedFactory;
};
Run Code Online (Sandbox Code Playgroud)

2)注入一个更通用的工厂并允许节点从该工厂获得工厂:

AreaNode : public INode
{
    AreaNode(IFactory *injectedFactory)
    {
        m_injectedFactory = injectedFactory;
    }

    INodeAbstractFactory* getFactory()
    {
        return m_injectedFactory->getAreaNodeFactory();
    }

    IFactory* m_injectedFactory;
}
Run Code Online (Sandbox Code Playgroud)

3)只需创建具体工厂(尽管这样就删除了为同一节点使用不同工厂的范围,可能用于测试或以后的更改):

AreaNode : public INode
{
    INodeAbstractFactory* getFactory()
    {
        return new AreaNodeFactory();
    }
}
Run Code Online (Sandbox Code Playgroud)

目前关于这些选择的想法:

选项1:可能是有点杂乱无章 - 我必须确保我总是给它正确的工厂为该类型,也许我可以只使用另一家工厂注入正确的工厂给我.

选项2:强制了解抽象工厂实现足以能够调用getAreaNodeFactory,这可能不是一件坏事节点.它至少有助于确保始终获取正确/相同的工厂(假设更一般的工厂正确实施).

方案3:这种感觉,因为我不能够交换类出一点限制,我并不热衷于为了解具体执行工厂的节点 …

c++ oop design-patterns

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

数据库更新的托盘通知

我想构建一个小应用程序,每当更新或插入进入SQL服务器数据库中的某个表时,会弹出托盘通知(或吐司弹出窗口等).

这样做最简单的方法是什么,因为我想尽可能避免轮询?

sql-server notifications

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

在Android上使用蓝牙的服务发现失败异常

我目前正在研究一种通过蓝牙连接到仪器的Android应用程序,需要编写字符串命令并接收字符串响应.目前我通过Wi-Fi进行TCP/IP连接/读/写工作,现在尝试实现蓝牙.但我遇到了一些障碍.我一直在网上搜索试图找到类似的东西的例子,并没有运气.我一直在使用Android开发人员资源示例:蓝牙聊天作为我的主要参考点.

我当前的代码似乎工作..然后它会在连接点抛出Service Discovery Failed异常.我正在使用DeviceListActivity该类来发现和选择我想要连接的设备.它返回anActivityResult,然后我的蓝牙类等待它处理它,然后连接到它.下面的代码几乎与蓝牙聊天应用程序相同.

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(!m_BluetoothAdapter.isEnabled())
    {
        m_BluetoothAdapter.enable();
    }
    switch (requestCode) {
        case REQUEST_CONNECT_DEVICE:
            // When DeviceListActivity returns with a device to connect
            if (resultCode == Activity.RESULT_OK) {
                // Get the device MAC address
                String address = data.getExtras()
                                     .getString(DeviceListActivity.EXTRA_DEVICE_ADDRESS);
                // Get the BLuetoothDevice object
                BluetoothDevice device = m_BluetoothAdapter.getRemoteDevice(address);
                // Attempt to connect to the device
                connect(device);
            }
            break;

        case REQUEST_ENABLE_BT:
            // When the request to enable Bluetooth returns
            if (resultCode …
Run Code Online (Sandbox Code Playgroud)

java android bluetooth

49
推荐指数
2
解决办法
6万
查看次数

在PHP中创建txt文件

我在php中创建文本文件,文件已从本地pc以正确的格式创建,如果我在线尝试,那么没有换行符,也没有显示格式化.

我正在使用此代码.

header("Content-type: application/txt");
header("Content-Length: ". sizeof($content));
header("Content-Disposition: inline; filename=". $file);
print $content; die;
Run Code Online (Sandbox Code Playgroud)

如果有人有解决方案,请与我分享.

提前致谢.

php

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

指针数组和大小混乱

为什么以下代码输出4

char** pointer = new char*[1];
std::cout << sizeof(pointer) << "\n";
Run Code Online (Sandbox Code Playgroud)

我有一个指针数组,但它应该有长度1,不应该吗?

c++ pointers

12
推荐指数
2
解决办法
3083
查看次数

如何在CodeIgniter中读取QueryString?

我知道之前有人问过,但我需要联盟跟踪......

http://www.mysite.com/controller/method/params?affiliate=123&sub_id=456

如何获取该URL中列出的参数和$ _GET参数?

codeigniter affiliates query-string

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

如何删除文本/输入框周围的边框(轮廓)?(铬)

任何人都可以解释如何删除文本/输入框周围的橙色或蓝色边框(轮廓)?我认为只有在Chrome上才会显示输入框处于活动状态.这是我正在使用的输入CSS:

input {
    background-color: transparent;
    border: 0px solid;
    height: 20px;
    width: 160px;
    color: #CCC;
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

css google-chrome focus input border

1208
推荐指数
11
解决办法
155万
查看次数

如何在PostgreSQL查询中显示行号?

我想显示PostgreSQL查询返回的每条记录的观察数.

我认为在8.4窗口函数中可以执行此功能.

sql database postgresql

70
推荐指数
2
解决办法
9万
查看次数

是否可以在不使用名称的情况下查询SQL Server中的系统数据库?

在对SQL Server(2005+)中的多个数据库进行查询时,我发现有时需要排除系统数据库(master,model,tempdb,msdb和distribution)

还有其他方法可以过滤这些

where name not in (''master', 'model', 'tempdb', 'msdb', 'distribution')
Run Code Online (Sandbox Code Playgroud)

我查看了sys.databases和master.dbo.sysdatabases(不一样!)

[UPDATE]我用来查找启用了logshipping的数据库的示例查询

select d.name, p.last_backup_date, s.secondary_server, s.secondary_database
from sys.databases d
    left outer join msdb..log_shipping_primary_databases p on p.primary_database = d.name
    left outer join msdb..log_shipping_primary_secondaries s on s.primary_id = p.primary_id
where name not in ('model','master','tempdb','distribution','msdb')
order by d.name
Run Code Online (Sandbox Code Playgroud)

[更新]这似乎是"最不好的"方式,除非别人有更好的方法?

SELECT * FROM 
master.sys.databases AS dtb 
WHERE (dtb.database_id < 5 or dtb.is_distributor = 1)
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2005 system-databases

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