我有一个模板化的类A <T,int>和两个typedef A <string,20>和A <string,30>.如何覆盖A <string,20>的构造函数?以下不起作用:
template <typename T, int M> class A;
typedef A<std::string, 20> one_type;
typedef A<std::string, 30> second_type;
template <typename T, int M>
class A {
public:
A(int m) {test= (m>M);}
bool test;
};
template<>
one_type::one_type() { cerr << "One type" << endl;}
Run Code Online (Sandbox Code Playgroud)
我希望类A <std :: string,20>做一些其他类没有的东西.如何在不更改构造函数的情况下执行此操作A:A(int)?
对垃圾收集器有什么保证?
根据我的研究,我找到了:
但我真正想知道的是:
是否保证所有内存最终都将被垃圾收集并且终结器(析构函数)在对象上运行(假设程序退出很好).例如,最终退出时没有内存压力的应用程序会强制GC查找所有对象并确保调用终结器(析构函数)(包括静态成员变量)?
我在这个页面上找到了一个引用:http: //www.c-sharpcorner.com/UploadFile/tkagarwal/MemoryManagementInNet11232005064832AM/MemoryManagementInNet.aspx
此外,默认情况下,当应用程序退出时,不会为无法访问的对象调用Finalize方法,以便应用程序可以快速终止.
但我不确定这句话是多么权威.
我还找到了文档: CriticalFinalizerObject
用户定义的对象如何在map和set中排序?据我所知,map/set是Sorted Associative Containers:插入的元素是根据它所拥有的键进行排序的.
但是map和set内部用于operator >对元素进行排序.
从SGI站点,我有以下示例:
struct ltstr
{
bool operator()(const char* s1, const char* s2) const
{
return strcmp(s1, s2) < 0;
}
};
int main()
{
map<const char*, int, ltstr> months;
months["january"] = 31;
months["february"] = 28;
months["march"] = 31;
months["april"] = 30;
months["may"] = 31;
months["june"] = 30;
months["july"] = 31;
months["august"] = 31;
months["september"] = 30;
months["october"] = 31;
months["november"] = 30;
months["december"] = 31;
cout << "june -> " << months["june"] << endl; …Run Code Online (Sandbox Code Playgroud) 以下代码应将数据从wifstream复制到wcout.复制内容后,程序将抛出ios :: failure异常.
#include <string>
#include <iostream>
#include <sstream>
#include <fstream>
#include <locale>
#include <iterator>
#include <algorithm>
int main(void)
{
std::locale::global(std::locale(""));
std::wifstream is;
is.exceptions( std::ios::failbit | std::ios::badbit );
is.open("test.ts", std::ios::binary);
is >> std::noskipws;
std::istream_iterator<wchar_t, wchar_t> in(is);
std::istream_iterator<wchar_t, wchar_t> end;
std::copy(in, end,
std::ostream_iterator<wchar_t, wchar_t>(std::wcout));
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如果出现任何问题,流应该只抛出一个异常(参见异常掩码),但不会抛出异常.
在Eclipse中:
当我选择In"File/New/Class/Add ..."时,
我可以看到来自boost ::,std ::,sql ::和我当前项目的基类候选者.
我想将Gnome类(Gtk ::,Glib ::等)添加到候选列表中.有谁知道怎么做?
作为优秀的开发人员,我们尽可能保持代码符合标准,以帮助在平台之间移植.但是有哪些工具可以帮助我们在多个平台上以统一的方式构建代码.
*nix系列有makeWindows需求nmake.
我读过关于SCons但从未在愤怒中使用它.你最喜欢的构建工具是什么,为什么你觉得它有效并且有任何限制(即支持不良的平台等).
跨平台IDE也是如此.
从这个答案:什么是C++终止处理程序右Thing(TM)?
当应用程序退出时,操作系统会自动清理"是"和"不"的资源列表会很不错.在您的回答中,如果您可以指定操作系统/资源并且最好是指向某个文档(如果适用)的链接,那将是很好的.
显而易见的一个:
内存:是自动清理.题.有没有例外?
什么是当前支持tr1或Mac上的新C++ 0x
我知道随XCode提供的gcc总是有几个版本,可以从gcc.gnu.org获得,所以我只是想知道现代支持的状态是什么.
例如,我是否需要下载boost以使用shared_ptr或者我可以从std :: tr1获取它吗?
网络抓取工具的典型礼貌因素是什么?
除了始终服从robot.txt
"Disallow:"和非标准"Crawl-delay:"
但是,如果站点未指定显式爬网延迟,则应将默认值设置为什么?
c++ ×6
stl ×2
c# ×1
c++-faq ×1
c++11 ×1
class ×1
constructor ×1
destructor ×1
eclipse-cdt ×1
macos ×1
namespaces ×1
raii ×1
resources ×1
stream ×1
templates ×1
tr1 ×1
web-crawler ×1