小编ezp*_*sso的帖子

STL迭代器:"解除引用"迭代器到临时.可能吗?

我正在为我的科学软件编写一个3D网格,我需要遍历网格的节点来获取它们的坐标.而不是将每个节点对象保存在容器中,我宁愿只是在迭代时动态计算坐标.问题是stl :: iterator需要返回对值的引用operator*()或者指针的引用operator->().

下面的一些代码:


class spGridIterator {
public:
    typedef forward_iterator_tag iterator_category;
    typedef spVector3D value_type;
    typedef int difference_type;
    typedef spVector3D* pointer;
    typedef spVector3D& reference;

    spGridIterator(spGrid* gr, int index);

    spGridIterator& operator++();
    spGridIterator& operator++(int);

    reference operator*() const;
    pointer operator->() const;

private:
    spGrid* m_grid;
    int m_idx;
};
Run Code Online (Sandbox Code Playgroud)

spGridIterator::reference spGridIterator::operator*() const {
    // return m_grid->GetPoint(m_idx);
}

spGridIterator::pointer spGridIterator::operator->() const {
    // return m_grid->GetPoint(m_idx);
}
Run Code Online (Sandbox Code Playgroud)

此方法通过提供的索引查询节点坐标


spVector3D spGrid::GetPoint(int idx) const {
    // spVector3D vec = ... calculate …
Run Code Online (Sandbox Code Playgroud)

c++ iterator stl

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

使用Doxygen时构建文档

我开始使用Doxygen记录我的PHP5框架.我正在尝试使用CodeIgniter框架的内联文档作为参考.但是,它的文档是使用phpDocumentor语法编写的.下面是CodeIgniter的Loader类描述的示例:

/**
 * Loader Class
 *
 * Loads views and files
 *
 * @package          CodeIgniter
 * @subpackage       Libraries
 * @author           ExpressionEngine Dev Team
 * @category         Loader
 * @link             http://codeigniter.com/user_guide/libraries/loader.html
 */
class CI_Loader {
...
}
Run Code Online (Sandbox Code Playgroud)

如何使用Doxygen实现相同的结构(Package-> Subpackage-> Category-> Class)?我想为结构的每个元素都有一个相应的描述页面.

另一个问题是如何构建项目的文档?

php documentation doxygen

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

注册表模式:使用或不使用

我正在考虑在我的应用程序中使用注册表模式来存储应用程序的一些窗口和窗格的弱指针.该应用程序的一般结构如下所示.

应用图

该应用程序有一个MainFrame顶级窗口,其中包含很少的子窗格.可以有许多基于TabPane类型的选项卡.我需要从我的所有TabPane选项卡中引用ParamsPane面板,所以我需要一个指向ParamsPane对象的指针存储在某处.可以有很多选项,但最明显的选择是(1)将指针存储在Application单例对象中,或(2)创建一个简单的注册表类.就像是:

class Registry {
public:
    static MainApp* application;
    static MainWindow* mainWindow;
};
Run Code Online (Sandbox Code Playgroud)

这是一个好习惯吗?这种方法有哪些好处和注意事项?

c++ design-patterns

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

VB6:如何切换到像素而不是缇

我正在重构一个VB6应用程序.任何控件的测量值都是缇.在VB6中是否可以将控件设置为使用像素而不是?谢谢

vb6

5
推荐指数
3
解决办法
2万
查看次数

哪些浏览器支持MathML?

我们将很快开始研究TeX到MathML转换器。因此,我想知道哪些浏览器(从哪个版本开始)正式支持MathML?谢谢

browser mathml

5
推荐指数
2
解决办法
4483
查看次数

__declspec(uuid("ComObjectGUID"))扩展为什么?

我有一段代码使用特定Microsoft的C++ 扩展:

interface __declspec(uuid("F614FB00-6702-11d4-B0B7-0050BABFC904"))
ICalculator : public IUnknown
{ 
    //...
};
Run Code Online (Sandbox Code Playgroud)

这句话扩展到了什么?如何用ANSI C++重写它?

c++ declspec

5
推荐指数
2
解决办法
3798
查看次数

为什么在 VB6 中 COM 接口名称被 coclass 名称替换?

我正在开发一个 C++ COM 库以从 VB6 应用程序中使用它。.IDL 文件定义了一些接口和一个类库,其中包含一些实现这些接口的组件类:

[
    local,
    object,
    uuid(....),
    version(1.0)
]
interface ICOMCvPixelBuffer : IUnknown
{
    ....
};

[
    local,
    object,
    uuid(....),
    version(1.0)
]
interface ICOMCvBitmap : IUnknown
{
    ....
    HRESULT GetPixelBuffer([retval][out] ICOMCvPixelBuffer** pBuffer);
    HRESULT SetPixelBuffer([in] ICOMCvPixelBuffer* pBuffer);
    ....
};

[
    uuid(....),
    version(1.0)
]
library COMCvLibrary
{
    importlib("stdole32.tlb");
    interface ICOMCvBitmap;
    interface ICOMCvPixelBuffer;

    [
        uuid(....),
        version(1.0)
    ]
    coclass CCOMCvPixelBuffer
    {
        [default] interface ICOMCvPixelBuffer;
    };

    [
        uuid(....),
        version(1.0)
    ]
    coclass CCOMCvBitmap
    {
        [default] interface ICOMCvBitmap;
    };
};
Run Code Online (Sandbox Code Playgroud)

VB6 中的对象浏览器SetPixelBuffer …

c++ vb6 com

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

设置文本格式时应该使用边距还是填充?

我正在为我的网站设计一些 CSS。我需要格式化(在标题和段落之间添加一些适当的间距)一段统一文本,其中标题和段落位于单个背景上margin这可以使用或属性来完成padding。我确实理解这两者在 CSS 中的区别。另外,关于这些 CSS 属性的使用,还有很多问题:

然而,毫无疑问应该使用什么属性来进行正确的文本格式设置。假设我需要像这样设置文本格式:

格式示例

我应该使用marginpadding控制文本元素(标题和段落)之间的间距吗?<p>建议在和标签上使用什么<h..>?常见的做法是什么?

这是我现在想到的:

/* tiny reset */
html { font-size: 10px; }
html, body { margin: 0; padding: 0; }
* { box-sizing: border-box; }

p {
  font-family: 'Roboto', sans-serif;
  font-size: 1.6rem;
  line-height: 2.5rem;
  margin: 0.6rem 0 2.0rem 0;
  padding: 0 2px 4px 2px;
  width: 100%; /* Opera needs this */
  text-rendering: optimizeLegibility;
}

h1, …
Run Code Online (Sandbox Code Playgroud)

html css

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

强制MSXML使用缩进和换行格式化XML输出

我使用MSXML 3.0与Visual Basic 6来存储和检索我的应用程序的配置.将结果保存DOMDocument到XML文件时,根对象将呈现为单个非常长的文本行:

<?xml version="1.0"?>
<!--WORKAPP 2011 Configuration file-->
<profile version="1.0"><frmPlan><left>300</left><top>300</top><width>24600</width><height>13575</height></frmPlan><preferences><text1/><text2/><text3/><background_color/><grid-major-step-x>50</grid-major-step-x><grid-major-step-y>50</grid-major-step-y></preferences></profile>
Run Code Online (Sandbox Code Playgroud)

是否可以强制MSXML使用缩进和换行格式化生成的XML文件?

vb6 msxml

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

如何在c#中使用对变量的引用

我想缩短像这样的表达

this.GdkWindow.GetPosition(ConfigurationService.ApplicationSettings.rect1.X,
                           ConfigurationService.ApplicationSettings.rect1.Y);
Run Code Online (Sandbox Code Playgroud)

类似于this.GdkWindow.GetPosition(refRect1.X, refRect1.Y)使用对ConfigurationService.ApplicationSettings.rect1变量的引用.

在C++中,我能够使用对象(或变量)的引用,如下所示:

Rect& refRect1 = very.very2.very3.long_variable.rect1;
GetPosition(refRect1.x, refRect1.y);
Run Code Online (Sandbox Code Playgroud)

我怎样才能在C#中做同样的事情?

我如何int像下面的C++代码那样引用变量:

int A = 5;
int& B = A;
B = 12;
Run Code Online (Sandbox Code Playgroud)

更新:GetPosition方法声明为void GetPosition(out int x, out int y).该方法ConfigurationService.ApplicationSettings.rect1用一些数据填充结构.这就是为什么我想使用参考.

我知道我可以这样做:

    var rect = new Gdk.Rectangle();
    this.GdkWindow.GetPosition(out rect.X, out rect.Y);
    this.GdkWindow.GetSize(out rect.Width, out rect.Height);
    ConfigurationService.ApplicationSettings.rect1 = rect;
Run Code Online (Sandbox Code Playgroud)

但有没有办法避免使用临时变量?C#是否缺少PHP的功能?对C#绝对失望!

c#

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

标签 统计

c++ ×4

vb6 ×3

browser ×1

c# ×1

com ×1

css ×1

declspec ×1

design-patterns ×1

documentation ×1

doxygen ×1

html ×1

iterator ×1

mathml ×1

msxml ×1

php ×1

stl ×1