- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
假设我有这个函数来修剪 std::string 并决定扩展它,这样它不仅会删除开头和结尾的空格,还会删除我在另一个字符串中传递的任何字符,例如空格、换行符和回车符返回。
std::string Trim ( const std::string &In_Original,
const std::string &In_CharsToTrim = " \n\r" );
基本上,它会从 In_Original 的开头和结尾删除 In_CharsToTrim 中存在的所有字符。
现在,我不得不为 std::string 和 std::wstring 编写这个。因为我觉得这很荒谬,所以我选择使用模板,它可以工作,但我无法传递默认值,因为 std::wstring 版本必须得到 L"\n\r"
作为默认值(注意那里的小 L)。
我试过这个:
template <typename Type> Type Trim ( const Type &In_String,
const Type &In_TrimCharacters );
连同:
template std::string Trim ( const std::string &In_String,
const std::string &In_TrimCharacters = " \n\r" );
template std::wstring Trim ( const std::wstring &In_String,
const std::wstring &In_TrimCharacters = L" \n\r" );
但是没有用。它甚至无法编译。
目前,我所拥有的是一个单独的函数,用于在没有第二个参数的情况下进行调用,但这是完全错误的方法:
template <typename Type> Type Trim ( const Type &In_String,
const Type &In_TrimCharacters );
std::string Trim ( const std::string &In_String );
std::wstring Trim ( const std::wstring &In_String );
然后,在这个更简单的 Trim 函数中,我只是调用完整版本。
所以,基本上,我要问的是......:
如何根据模板类型传递不同的默认值?基本上,一个特化,其中唯一的变化是默认参数...
在这种情况下,在一种情况下要传递 std::string ( "\n\r")
,而 std::wstring ( L"\n\r")
在另一个...
或者...是否有另一种方法来完成我正在尝试做的事情?
最佳答案
这是我想出的:
template <typename T> struct default_trim_chars;
template<> struct default_trim_chars<std::string> {
static const char* value() { return " \n\r"; }
};
template<> struct default_trim_chars<std::wstring> {
static const wchar_t* value() { return L" \n\r"; }
};
template <typename Type> Type Trim ( const Type &In_String,
const Type &In_TrimCharacters = default_trim_chars<Type>::value()){
/* ... */
}
您还可以将 value
声明为数据成员而不是函数,但这需要 constexpr
和 C++11。
关于c++ - 模板函数中的默认参数值,取决于类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24701894/
SELECT ID, AppID, Description, Min([Transaction Date]) AS TransactionDate FROM AppProsHist WHERE [De
目前我正在创建规则,该规则应该检查方法是否包含 @Test 和 @TestInfo 注释。如果确实如此,@TestInfo 不应有空参数 testCaseId。 有几种不同的可能方法来填充 testC
是否可以设置参数值,使其在 where 子句中始终结果为 true? 作为示例,考虑一个查询: SELECT name FROM student WHERE class=@parameter; 现在我
我是 JPA 的新手,这是我的查询之一,我有几个参数作为查询的一部分,任何参数都可以为空值 @Query(value = "SELECT ord.purchaseOrderNumber,ord.sal
LOD 参数对 texturelod 取什么值? ?我发现的规范根本没有提到它。它是百分比还是带有百分比的索引值。如果是后者,有没有办法获得纹理具有的 mipmap 数量,以便我能够使用百分比? 最佳
我希望此代码替换现有的 URL 参数“aspid”,但它的作用是在现有的 id 上添加另一个 id。有人可以帮忙吗? $(document).ready(function() { function
在 Spring-boot 项目中,我尝试将 Date 对象作为请求参数传递,并收到此错误: Parameter value [1] did not match expected type [java
在我们的 Jenkinsfile 中,我们有很多参数(参数化构建),在这种情况下,我想检查每个参数是否已切换并对其进行操作。这些参数具有相似的名称,但以不同的小数结尾,因此我想迭代它们以实现此目的。
我的模板之一中有类似于以下内容的内容: 但是 Freemarker 不高兴并给了我: Exception in thread "main" freemarker.core.ParseExceptio
我正在从表单向重定向 servlet 发送一个 post 请求。然后,Servlet 将表单写入其响应 (getWriter) 对象。该表单包含许多隐藏字段。我使用 javascript 提交此表单(
我正在创建一个 JavaScript 组件,我正在根据 jQuery 结果创建该组件的实例,但是,我传递到构造函数中的 DOM 元素虽然在我单步执行调用代码中的循环时已填充,但在传递给构造函数时是未定
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我对 javascript 有疑问。 假设我有这样的 javascript 函数: function show_popup(id) { alert(id); } 编
我目前正在尝试抓取嵌入式 m3u8 url 路径以进行自学。 到目前为止,我设法确定请求会生成带有 m3u8 信息的 json 响应。 例如,https://headlines.yahoo.co.jp
谷歌地图 API 需要这样的参数: NSString *urlString=@"http://maps.google.com/maps?saddr=43.2923,5.45427&daddr=43.4
“parameterValue”是在 Javascript 中的事件上传递的默认参数吗?谁能解释一下这个值从何而来。 Load Ajax content 我发现它在以下文章中使用 - http://w
我有一个 .SWF 电子邮件提交表单。背景颜色通过以下方式设置: `` 并嵌入: `` 是否可以将鼠标悬停在对象或包含的 div 上来更改这些值?即#ffffff 非常感谢! 最佳答案 将 wmode
假设我想用指数函数拟合两个数组x_data_one和y_data_one。为此,我可以使用以下代码(其中 x_data_one 和 y_data_one 被赋予虚拟定义): import numpy
有什么方法可以填充 parameters在基于外部属性文件内容的 Liquibase 变更日志文件中? 例如,我希望能够说: 并将 table.name 的值和
我必须按原样发送参数值 'AbCd/EfgH'。但是 Angular 将 '/' 转义为 %2F。我无法控制 URL。 解决这个问题的最佳方法是什么? 我不想强制 Angular 停止对所有其他 UR
我是一名优秀的程序员,十分优秀!